python工作环境创建_VirtualEnv 和Pip 构建Python的虚拟工作环境

 2023-09-07 阅读 26 评论 0

摘要:(这是打算写的这个系列 http://www.v2ex.com/t/33489 的第一篇,我不会太监,毕竟这些内容本来在公司内部或多或少就会有整理,不过工作本身忙,进度快慢不能保证,各位谅解)一python在环境中应用,般而言,所有python相关的包会装在系统

(这是打算写的这个系列 http://www.v2ex.com/t/33489 的第一篇,我不会太监,毕竟这些内容本来在公司内部或多或少就会有整理,不过工作本身忙,进度快慢不能保证,各位谅解)

python在环境中应用,般而言,所有python相关的包会装在系统目录里,譬如/usr/lib/

或者/usr/local/lib/,这样的话,假设两个开发分支要求的库不一样,譬如对应在线版本的开发环境使用

Django1.3,但是一个新的开发分支基于Django1.4,两者就会互相影响。

Virtualenv 是一个虚拟环境程序,可以把开发环境隔离。基本思想是建立不同的环境目录,其中装有独立的各类包,甚至也可以是独立的不同版本python程序。

1. 安装 virtualenv 和 virtualenvwrapper,后者是一套很有用的扩展,提供了方便切换开发环境的快捷命令

以下命令都是基于Ubuntu的(Mac OS 上可以参考 https://gist.github.com/1208841 )

sudo pip install virtualenv

sudo pip install virtualenvwrapper

#2 在用户的home目录下创建一个名为product的虚拟环境

export WORKON_HOME=~/envs

mkdir $WORKON_HOME

source /usr/local/bin/virtualenvwrapper.sh

mkvirtualenv --no-site-packages product #--no-site-packages 参数代表所有的Python包都从虚拟环境里找,任何时候都不去例如/usr/lib/python/这类全局环境里查找

初期用virtualenv的时候的确不需要系统的安装包,即创建一个裸环境,可以使用这个参数。

步完成后,就建立了一个名为product的虚拟环境目录,用workon

product便能切换这个环境下,所谓切换,就是说这时候如果执行which

python,就会发现现在的python不是/usr/bin/python,而是~/envs/product/bin/python,相应的所有的

第三方python依赖也都在~/envs/product/lib/python2.7/site-packages/ 下。

#3 为了偷懒,可以在bashrc里建立一个alias,譬如

alias product='source ~/.bashrc; workon product; cd ~/envs/product/src'

alias stage='source ~/.bashrc; workon stage; cd ~/envs/stage/src'

这样执行product,stage就能分别切换到相应的虚拟工作环境,同时进入工作目录。

#4 未来要装相应的库,直接用pip即可,但是要确保pip也是相应的虚拟环境里的,可以用which pip检查,譬如要装django,就可以用

pip install django

pip也可以列出当前虚拟环境里所有的依赖,可以用这个办法将所有这些依赖写入一个文件,例如

pip freeze > product.dev     ##导出已安装的包列表

如果在另外一个环境里要重新安装这些依赖,执行

pip install -r product.dev

即可

备注:virtualenvwrapper的使用:

列出虚拟环境列表workon

也可以使用lsvirtualenv

新建虚拟环境mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境workon [虚拟环境名称]

删除虚拟环境rmvirtualenv [虚拟环境名称]

离开虚拟环境deactivate

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/18854.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息