实验室服务器安装anconda并安装机器学习基础包及TensorFlow/pytorch

目录:

      • 写在前面
      • conda简介
      • 下载并安装conda
      • 检验当前python版本
      • 使用前激活conda
      • 简单的conda指令

写在前面

写这篇文章的目的:希望大家看完这篇文章之后理解什么是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简介

(我自己瞎写的,更多详细介绍参见这里)
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

安装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好了.

检验当前python版本

安装conda的时候,默认安装了一个python,我们下载了python3.6版本的conda, 所以应该有一个3.6版本的python。输入python,或者python3,你发现你的python版本还是原来服务器上的2.7和3.4。或者你输入which pythonwhich python3,显示的python的位置也是/usr/bin/python或/usr/bin/python3。也就是说,我们安装好的conda还没有被激活。

使用前激活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。

简单的conda指令

强烈建议直接看官方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
  • 按照上面说的,激活环境python27:source activate python27,你会看到你的命令行的开头多出来(python27)的字样,表示你处于python27环境中。输入 python,which python之类的命令可以再次看出与之前python版本不同。
  • 输入 source deactivate可以退出当前环境(回到默认环境base)。

  • 再次检验conda环境:
    conda env list
    现在应该会出现两行,如果你处在python27环境中, *会出现在开头是python27的那一行

  • 检验python27环境下的python包安装情况
    conda list
    应该会出来一个列表,显示所有安装好的包及版本。

  • 安装其他python 包

    • 用pip装
      使用conda新建一个env的时候都会默认安装pip,所以你可以直接在激活该环境的情况下用pip安装其他python包。建议安装前用which pip 检验pip所在环境。
    • 用conda装
      激活相应env,可以先用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。另外,一定要认真看官方文档。

  • 创建其他环境(有需要的话),此时可以选择你想要的python版本
  • 了解其他conda命令(首推官方文档,另外, 网上也有各种教程)

  • 再次说明

    • 每次使用conda安装的python时,都需要先激活conda,然后再激活你想用的环境
    • 激活conda后默认是base环境,如果你使用的就是这个,那么不用再激活环境。如需要使用环境 python27(你设置的env名字) 的话命令行运行 source activate python27, 使用结束以后可以手动关闭 source deactivate,也可以可以直接关闭terminal来关闭。

你可能感兴趣的:(conda,python)