|
|
|
|
移动端

2.7.2 使用virtualenv管理不同的项目

《Python Linux系统管理与自动化运维》第2章Python生态工具,在本章中,我们将依次介绍Python生态的各种工具,包括:Python内置的小工具(2.1节);包管理工具pip(2.2节);Linux和Windows下的Python编辑器(2.3节);Python交互式编程工具(2.4节);Python调试器(2.5节);Python代码规范检查工具(2.6节)。本节为大家介绍使用virtualenv管理不同的项目。

作者:赖明星来源:机械工业出版社|2017-09-28 16:31

2.7.2 使用virtualenv管理不同的项目

virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。例如,用户lmx希望在项目A中使用Flask 0.8这个版本,与此同时,又想在项目B中使用Flask 0.9这个版本。如果我们全局安装Flask,必然无法满足用户的需求。这个时候,我们就可以使用virtualenv。

读者需要注意pyenv和virtualenv的区别。pyenv用以管理不同的Python版本,例如,你的系统工作时使用Python 2.7.13,学习时使用Python 3.6.0。virtualenv用以隔离项目的工作环境,例如,项目A和项目B都是使用Python 2.7.13,但是,项目A需要使用Flask 0.8版本,项目B需要使用Flask 0.9版本。我们只要组合pyenv和virtualenv这两个工具,就能够构造Python和第三方库的任意版本组合,拥有很好的灵活性,也避免了项目之间的相互干扰。

virtualenv本身是一个独立的工具,用户可以不使用pyenv而单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件,而不是通过virtualenv软件使用virtualenv的功能。

1. pyenv-virtualenv的安装

安装和使用pyenv-virtualenv插件如下所示:

  1. $ git clone https://github.com/yyuu/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv  
  2. Cloning into '/home/lmx/.pyenv/plugins/pyenv-virtualenv'...  
  3. remote: Counting objects: 1860, done.  
  4. remote: Total 1860 (delta 0), reused 0 (delta 0), pack-reused 1860  
  5. Receiving objects: 100% (1860/1860), 530.62 KiB | 213 KiB/s, done.  
  6. Resolving deltas: 100% (1274/1274), done.  
  7. $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile 

与安装pyenv类似,安装完成以后需要重新载入配置文件,或者退出用户再登录,以使得配置文件生效:

  1. $ source  ~/.bash_profile  
  2. $ pyenv help virtualenv  
  3. Usage: pyenv virtualenv [-f|--force] [VIRTUALENV_OPTIONS] [version] <virtualenv-name> 
  4.        pyenv virtualenv --version  
  5.        pyenv virtualenv --help  
  6.   -f/--force       Install even if the version appears to be installed already 

2. pyenv-virtualenv的使用

有了pyenv-virtualenv以后,我们可以为同一个Python解释器,创建多个不同的工作环境。例如,我们新建两个工作环境:

  1. $ pyenv virtualenv 2.7.13 first_project  
  2. $ pyenv virtualenv 2.7.13 second_project 

可以使用virtualenvs子命令查看工作环境:

  1. $ pyenv virtualenvs  
  2.   2.7.13/envs/first_project (created from /home/lmx/.pyenv/versions/2.7.13)  
  3.   2.7.13/envs/second_project (created from /home/lmx/.pyenv/versions/2.7.13)  
  4.   first_project (created from /home/lmx/.pyenv/versions/2.7.13)  
  5.   second_project (created from /home/lmx/.pyenv/versions/2.7.13) 

创建完工作环境以后,可以通过activate和deactivate子命令进入或退出一个工作环境。进入工作环境以后,左边的提示符会显示你当前所在的工作环境,以免因为环境太多导致操作错误。

  1. $ pyenv activate first_project  
  2. (first_project) $ pip install flask==0.8  
  3. (first_project) $ pyenv deactivate 

接下来,我们看一下在不同的工作环境安装不同的Flask版本:

  1. $ pyenv activate first_project  
  2. (first_project) $ pip install flask==0.8  
  3. (first_project) $ pyenv deactivate  
  4. $ pyenv activate second_project  
  5. (second_project) $ pip install flask==0.9 

如果想要删除虚拟环境,则使用:

  1. pyenv virtualenv-delete first_project 

使用pyenv和python-virtualenv插件,我们就能够自由地在不同的版本之间进行切换,相比管理Python版本,不但节省了时间,也避免了工作过程中的相互干扰。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络安全

本书全面深入地介绍网络安全的配置与实现技术,包括系统管理、用户账户、病毒防御、灾难恢复、文件备份、安全策略、注册表等服务器安全,用...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊