2020-01-18
使用的硬件软硬件环境:Windows10 + Anaconda + Pycharm
Anaconda
1)了解Python
Python可以理解成一个解释软件,可以将写的Python代码翻译给电脑执行。
如果我们电脑中有装有Python的话,打开安装目录可以看到如下结构:
其中python.exe就是我们的解释器
Lib文件夹用来存python的包,包括自带的包和第三方包。如果是第三方的包则存在Lib下的site-packages文件夹中
总的来说,python中包括一个解释器和一个包集合
问题是,python自己已经可以满足自己程序的所有过程,为什么还要用到anaconda呢?
2)Anaconda的安装
在解释为什么使用anaconda之前,我们先将anaconda装好先。
Windows下的安装步骤可以参考这篇博客,这里不再赘述。
安装完之后,最好改下镜像源,就是下载库的地址。这里使用清华大学的镜像源。
我们打开cmd,输入conda config --set show_channel_urls yes
然后文件管理器中进入C盘下的用户目录,找到.condarc文件,用记事本打开。
然后删除原有的,粘贴如下内容就更改结束了:
1 |
|
另外,因为我是使用Windows平台的,所以这里有关Linux系统的操作都省略。
3)Anaconda的作用
问题①:我们都有了python,为什么还要anaconda呢?
这就要涉及环境的问题了。我们知道,python的优势就是可以引入很多的第三方的库和包。
可是当我们编写不同的项目程序的时候,会有很多不同的库要引入。
打个比方,我写爬虫程序,要用到requests包;我写神经网络,可能要用到PyTorch库。
如果我电脑中没有anaconda,所有的包和库都要放在Lib文件夹中。
在我跑爬虫程序时,不仅要将加载完全用不上的PyTorch库导致运行启动变慢,还可能在调用request包的时候发生错误。
为了解决上述问题,Anaconda就出场了。
问题②:anaconda怎么解决
Anaconda可以理解成包含了Python的一个大包。
这个包中除了Python,还包括一些其他常用的库,例如numpy和pandas。
打开anaconda安装目录可以发现,anaconda的项目结构和python的极为类似。
两个都有一个python.exe和Lib文件夹,分别是base环境下的解释器和包文件夹。
anaconda解决上面问题的方法就是为每一个项目创建新的环境。
每个新环境中都独自着有着自己的Lib文件夹,及有属于自己的包和库。
这样子调用起来每个项目都有独立的环境,不会相互干扰。
4)创建Anaconda的虚拟环境
在安装完anaconda之后,开始菜单中会有如下图的目录结构,点开框中的:
点开之后可以看到如下图的界面,然后点击左侧environment的标志:
可以看到,environment中有一个base的环境,这个就是我们刚刚看到的anaconda安装目录下的python.exe和Lib组成的基础环境。
我们点击下面create按钮,然后输入环境名称abc并选择python版本之后,就创建好了一个新的虚拟环境。
我们之后在路径..\Anaconda3\envs下可以看到创建的新环境文件夹
进入文件夹后的内容如下:
可以看到,这个新建的环境就是一个完整的python环境目录。
所以,anaconda所谓的创建虚拟环境其实就是安装了一个真实的python环境, 只不过我们可以用不同版本的解释器和不同的包环境去运行python脚本.
此外,在anaconda navigator中,还可以在不同的环境下,下载不同的包库,这里留到后续再说。
Pycharm
1)Pycharm的安装
pycharm是一款python IDE,简单来说就是一个打代码的平台。
pycharm的安装很简单,在官网下载安装包后一路next即可,这里不做赘述。
2)Pycharm中使用anaconda环境
这里是一个重点。
在安装完pycharm后,我们点击 Create New Project 新建一个项目。
可以看到,除了要输入项目名称和保存的地址以外,下方还要选择使用的环境。按照下图操作。
在弹出的界面设置如下操作
然后在文件目录中选中刚刚创建的环境的python.exe,然后点击OK,就成功创建了一个项目。
第三方库的下载
1)新环境的包
到上面那步,我们通用的开放平台就搭建好了。
但是我们前面说到,python的优势就是有庞大的第三方库。
如果我们在anaconda navigator中查看新环境abc包含的库时,会发现相比base环境,abc少了很多库。
|
就连base库中最基本的numpy库和pandas库都没有。
这里说明我们需要自己下载要用到的库。
下面以安装numpy库为例,介绍conda的环境中安装第三方库的方法。
2)安装numpy库
在anaconda navigator中点开abc环境,按下面图片的顺序操作
等待安装完后,numpy库就安装成功了
问题解答
1)Pycharm创建新项目时为什么不选 New environment
在pycharm创建新项目的时候可以看到,除了有exist environment外,还有new environment。
至于为什么不用,是因为我们已经在anaconda navigator中创建好了新的环境。
其实在创建新项目的时候,也可以选用new environment来顺便创建新的环境。
但由于还要自己设置路径不太方便,所以我个人习惯先在anaconda navigator中创建好环境并安装好需要的库。
2)为什么用conda environment不用virtual environment
conda environment和virtual environment的目的其实都是为了划分出独立的运行环境。
但是两个创建环境的逻辑不太一样。
我个人理解virtual environment创建的虚拟环境是可以继承base环境中的库,即虚拟环境中对于base中已有的库并不会再次下载到自己的环境中。
而conda environment在创建时,只有最基本的几个包且不继承base中的任何库。若想用到base中的库,则要在虚拟环境中再次下载安装多一个副本。例如上文中的numpy库,base中自带了numpy,但新环境abc中需要自己安装。
3)为什么用conda进行安装不用pip
如果在网上搜索python搜索安装库的方法,大致有两种:conda安装和pip安装
首先说下pip是什么:pip 是一个 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。
conda是什么:conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系。
简单来说,pip就是个下载python包的工具,而conda则是个管python环境的工具。
既然两个都能下载包,为什么选择conda呢?
这个问题我想了很久,后来发现conda安装后,可以在anaconda navigator的列表中当前环境中的包有哪些。而用pip安装的包不能显示在anaconda navigator的列表中。所以为了方便,我个人选择了conda来安装需要的包。