目录:
写这篇文章的目的:希望大家看完这篇文章之后理解什么是conda, 学会安装conda, 并用conda在任意一台机器(主要是服务器)上配置自己的python开发环境。
如果你使用过conda,并且只是需要在服务器上配置自己的开发环境(独立的任意版本的python和你需要的python package)。那么也许你不需要看下面的内容。你只需要把conda安装在你的文件夹下(默认位置),安装过程中,在需要选择的时候仔细看提示,直接回车或者选择yes/no,一般就没有问题(其实除了最后一个和Microsoft VSCode相关的,其他可以全部选yes或回车)。然后,你可以配置自己python环境。在每次需要相应的开发环境的时候,使用的时候用 source ~/.bashrc
激活conda,然后用source activate [env_name]
激活你需要的python开发环境,就可以愉快地使用了。
如果你不了解conda, 也没有使用过,或者你对上面的内容不理解,我建议你看看下面的内容/教程。我觉得写得挺冗余的。所以,如果你有不清楚的地方或者建议,欢迎留言。
(我自己瞎写的,更多详细介绍参见这里)
conda是anaconda的简称,它其实就是一个python包组管理器。用conda我们可以非常方便地安装python的各种package(e.g. numpy, scipy, matplotlib, tensorflow, pytorch, etc.),而不用管包与包之间的dependency问题——比如有的时候你安装新的package1,它要求numpy 1.0版本,你再次安装package2,他又要求numpy1.3,这个时候就会出问题:要么package1用不了,要么package2安装失败。
当然,这个问题很大程度上被pip解决了。所以conda有点类似于pip(它们是竞争关系),但是比pip更方便,更具优势,因为它允许在一台机器上有多个python版本共存。我们可以使用conda建立多个独立的开发环境(env),在每个环境中安装自己需要的python版本及各种相关的package版本。当然,conda带来方便的同时,也是有点小瑕疵的。使用conda安装的python,在实际运行的时候效率会比较低(相对于 install from source)。不过我们主要是用python做科学研究,所以可以不用太在乎这点细微的差别。
另外,对于多用户的机器,如实验室的服务器,conda的安装本身也是相互独立的。也就是说,如果你安装了conda,别人是不知道的,也就不会去动你的开发环境。具体介绍参见这里。
下面,我们来介绍如何安装conda并利用conda安装自己的python开发环境,用于我们的机器学习/深度学习研究。
安装conda可以通过安装Anaconda或者Miniconda实现。前者的功能很丰富,也比较lourd,有兴趣的可以去了解一下。不过就我们的目的——安装科学研究使用的开发环境而言,使用轻量化的Miniconda就可以了。在服务器上下载通过简单的 wget 下载链接
实现。如
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
点击上面蓝字可以直达下载页找到下载链接。也可以在我的文件夹(/home/lizhiwei/)下找到下载好的文件。我下载的是linux 64位 python3.6的miniconda: Miniconda3-latest-Linux-x86_64.sh
。下载或者从我的文件夹下copy该文件到你的目录下。
在linux下打开命令行,进入该.sh文件所在位置。输入下面的命令并回车运行
bash Miniconda3-latest-Linux-x86_64.sh
仔细看安装提示,一般是Enter或者输入yes,注意以下几个地方:
>>Do you accept the license terms? [yes|no]
>> yes
>Miniconda3 will now be installed into this location:
/home/lizhiwei/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/(your directory)/miniconda3] >>> ENTER(敲回车,表示conda会安装在这个文件夹下。不是输入ENTER哈)
然后会安装一堆东西
Do you wish the installer to prepend the Miniconda3 install location
to PATH in your /home/(your directory)/.bashrc ? [yes|no]
[no] >>> yes
上面输入yes,会在你文件夹下的~/.bashrc 文件末尾添加一句export PATH=/home/[your directory]/miniconda3/bin:$PATH
,表示将conda加入你的环境变量。通过vim ~/.bashrc
可以查看。
Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> no
在服务器上我们不适用Microsoft VSCode,所以选no好了.
安装conda的时候,默认安装了一个python,我们下载了python3.6版本的conda, 所以应该有一个3.6版本的python。输入python
,或者python3
,你发现你的python版本还是原来服务器上的2.7和3.4。或者你输入which python
或which python3
,显示的python的位置也是/usr/bin/python或/usr/bin/python3。也就是说,我们安装好的conda还没有被激活。
因为每个人安装的conda都是独立的,所以每次重新登录的时候,conda是没有被激活的,你可以在命令行输入conda
测试一下,应该会返回
conda: commmand not found
此时需要输入source ~/.bashrc
。这表示激活~/.bashrc文件中的环境变量。再次输入 conda
测试一下,你会发现……
所以这里有一点小麻烦,在每次你想使用conda或者相应的开发环境的时候,你都得用 source ~/.bashrc
激活一次。这么做是为了保证conda的相对独立性。默认不激活conda,此时,你可以使用服务器公用的python2.7和python3.4。需要你自己配置的开发环境时你再激活。
另外,激活后使用 which python
命令可以检查当前python的调用位置。默认是 /usr/bin/python, 激活conda以后就是conda所在的文件下的python。
强烈建议直接看官方doc Getting started with conda ,这里各种conda的命令和作用讲得比较全。
检查conda :
conda --version
检查conda里的开发环境(env):
conda env list
或者conda info --envs
base * /home/(your directory)/miniconda3
不出意外只有上面这一行,就是默认的环境,中间有个*。这一行的意思是,我们当前所在的环境是默认环境。我们可以直接在这个默认环境上安装包,但是这不是明智的做法,大家都会第一时间使用默认环境,容易出问题。所以,下面我们将介绍如何创建并配置自己的独立的开发环境。
创建独立的开发环境并同时安装基础包(名字是python27,你也可以改成自己想要的名字,python版本是2.7,后面的是基础的python包)
conda create -n python27 python=2.7 numpy scipy seaborn pandas matplotlib scikit-learn jupyter notebook
不出意外应该会出现一堆列表然后让你选[Y]/n, 直接回车就可以了。
这段命令同时干了两件事:
1)建立python版本为2.7的开发环境;
2)在该环境下同时安装 numpy scipy seaborn pandas matplotlib scikit-learn jupyter notebook 等python包。
它等同于先执行 conda create -n python27 python=2.7
,然后在python27环境中执行 conda install numpy scipy seaborn pandas matplotlib scikit-learn jupyter notebook
安装结束后得到如下内容:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate python27
#
# To deactivate an active environment, use:
# > source deactivate
source activate python27
,你会看到你的命令行的开头多出来(python27)的字样,表示你处于python27环境中。输入 python
,which python
之类的命令可以再次看出与之前python版本不同。输入 source deactivate
可以退出当前环境(回到默认环境base)。
再次检验conda环境:
conda env list
现在应该会出现两行,如果你处在python27环境中, *会出现在开头是python27的那一行
检验python27环境下的python包安装情况
conda list
应该会出来一个列表,显示所有安装好的包及版本。
安装其他python 包
which pip
检验pip所在环境。conda search [package_name]
检查conda是否提供了该package的安装,如果返回正常,则使用 conda install [package_name]
安装。也可以直接谷歌conda install [package_name],一般会调到Anaconda网站,提示安装该package的命令。安装tensorflow
参考官网教程。选择anconda安装方式,GPU版本。记得找准对应的python版本。
我使用的是简单的pip install tensorflow-gpu
, 这会安装tensorflow的最新版本
安装pytorch
参考官网教程(同上,选pip或者conda安装方式都可以,我们的cuda 版本是8.0)我测试过
conda install pytorch torchvision -c pytorch
成功了。注意,使用pip前,一定使用which pip
看看当前pip是调用的哪里的pip。另外,一定要认真看官方文档。
了解其他conda命令(首推官方文档,另外, 网上也有各种教程)
再次说明
每次使用conda安装的python时,都需要先激活conda,然后再激活你想用的环境
。source activate python27
, 使用结束以后可以手动关闭 source deactivate
,也可以可以直接关闭terminal来关闭。