python 开放环境(你需要知道的几种方法)

python 开放环境(你需要知道的几种方法)(1)

简介

如果你使用Python开发,对于不同的开发框架或应用肯定会有Python多版本共存的情况,此时Python多环境管理工具就可以帮你快速解决此问题,以便将精力专注开发。

今天我们就来介绍下Python多环境管理的几种工具:

  • Anaconda
  • Virtualenv
  • Virtaulenvwrapper

通过对以上工具的讲解,你以后就再也不用担心Python多版本共存的问题了。

Anaconda

Anaconda多应用在科学计算中,但是它可以很方便的对各个Python环境进行切换;而且自动包管理器conda可以安装软件包的多个版本和依赖。换句话说,我们可以使用conda命令安装各种Python工具,就像yum和pip一样方便。

1.安装部署

wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh bash Miniconda2-latest-Linux-x86_64.sh #自动写入环境变量 vim /root/.bashrc # added by Miniconda2 4.2.12 installer export PATH="$PATH:/usr/local/miniconda2/bin" #测试安装是否成功 conda list

安装过程是交互的,安装路径为 /usr/local/miniconda2 。

注意:

  1. 如果你已经安装了python环境,最好将conda的环境变量加在PATH最后,否则会优先使用/usr/local/miniconda2/bin下的python命令,造成不必要的麻烦。
  2. conda包括完整版的anaconda和最小化版miniconda。anaconda包含720多个开源安装包,安装完成至少需要3G空间;miniconda安装需要大约400M空间。我们使用miniconda就足够。

2.管理环境

(1)创建新的环境

conda create -n science numpy scipy matplotlib 或 conda create -n science -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ numpy scipy matplotlib 或

通过以上命令都会创建一个名为science的环境,默认使用python2(若使用python3需要指定版本),并且安装numpy scipy matplotlib模块。不过由于使用官方的安装源很慢,我们在此使用国内的清华安装源。

(2)查看当前所有环境

#环境列表 conda info --envs # conda environments: # science * /usr/local/miniconda2/envs/science root /usr/local/miniconda2 #切换环境变量 source activate science (science) root@test:~# source activate root

(3)删除环境

conda remove -n science_python3 --all

(4)添加国内安装源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes #查看配置 conda config --show

Anaconda环境管理中除了使用conda来安装使用的python依赖包外,还可以使用pip,但是必须是“/usr/local/miniconda2”路径下的,否则将会使用操作系统自动的python,安装的包并不会加载到Anaconda环境中。

Virtualenv

Virtaulenv的原理是把系统Python复制一份到Virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令Python和pip均指向当前的virtualenv环境。Virtaulenv相较于Anaconda,更多应用在开发环境。

1.安装部署

pip install virtualenv 或 easy_install virtualenv

2.创建虚拟环境

[root@test:/virtual_protect]# mkdir /virtual_project [root@test:/virtual_protect]# cd virtual_project [root@test:/virtual_protect]# virtualenv venv New python executable in /root/virtual_protect/venv/bin/python Installing setuptools, pip, wheel...done.

virtualenv venv 命令将会在virtual_project目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。 如果此时你的系统里有其他版本python,可以使用-p或–python参数来指定虚拟环境使用哪个版本的python,如下:

virtualenv -p /usr/local/python3 venv

3.启动虚拟环境

[root@test:/virtual_protect]# source venv/bin/activate (venv) [root@test:/virtual_protect]# pip list pip (8.1.2) setuptools (28.3.0) wheel (0.30.0a0)

登陆虚拟环境通过pip查看安装的包并没有系统自带python中安装的,这是因为virtualenv 运行时,默认自带–no-site-packages参数,将不会包含系统自带python安装的包。我们可以通过使用–system-site-packages参数来使虚拟环境包含系统python安装的包。

还有一种方法可以使虚拟环境包含系统自动python安装的包:

#导出包到指定文件中 pip freeze > requirements.txt #安装指定的包 pip install -r requirements.txt

4.退出虚拟环境

deactivate

对于Virtualenv来说并不会像Anaconda那样帮你安装其他版本的Python,它是依赖于你的操作系统已经安装的Python,在创建虚拟环境时指定Python版本。

Virtaulenvwrapper

Virtaulenvwrapper是Virtualenv的扩展包,用于更方便管理虚拟环境,它可以将将所有虚拟环境整合在一个目录下、管理(新增,删除,复制)虚拟环境、切换虚拟环境等。

1.安装配置

#安装 pip install virtualenvwrapper #创建目录用来存放虚拟环境 mkdir /virtualenv_project #设置环境变量 [root@test:~/virtual_protect]# vim ~/.bashrc export WORKON_HOME=~/virtualenv_project source /usr/local/bin/virtualenvwrapper.sh [root@test:~/virtual_protect]# source ~/.bashrc

2.创建虚拟环境

[root@test:~/virtual_protect]# mkvirtualenv venv1 New python executable in /root/virtualenv_project/venv1/bin/python Installing setuptools, pip, wheel...done. [root@test:~/virtual_protect]# mkvirtualenv venv2 New python executable in /root/virtualenv_project/venv2/bin/python Installing setuptools, pip, wheel...done.

其中mkvirtualenv命令类似与virtualenv命令,也可以通过-p、–no-site-packages、–system-site-packages等参数进行配置。

3.列出虚拟环境并切换

#列出当前的虚拟环境 [root@test:~/virtual_protect]# lsvirtualenv -b venv1 venv2 #切换虚拟环境 [root@test:~/virtual_protect]# workon venv1 (venv1) [root@test:~/virtual_protect]# workon venv2 (venv2) [root@test:~/virtual_protect]#

4.退出并删除虚拟环境

deactivate deactivate

Virtaulenvwrapper只是是Virtualenv的扩展包,底层是需要和Virtualenv配合使用的,只不过使操作更简便些罢了。

总结

经过以上介绍,我们已经学会了Python的多环境管理,也了解了Anaconda、Virtualenv、Virtaulenvwrapper的工作方式及应用领域,我们根据自己的实际情况按需选择。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页