Virtualenv 介绍及部署记录(3)

Virtualenv 附带有pip安装工具,因此需要安装的packages可以直接运行:
(pj_test) [root@kevin-test pj_test]# pip install [套件名称]
(pj_test) [root@kevin-test pj_test]# pip -V
pip 18.1 from /opt/project_test/pj_test/lib/python2.7/site-packages/pip (python 2.7)
 
(pj_test) [root@kevin-test pj_test]# pip install jinja2
 
安装后, 可以在虚拟环境里找到这个套件
(pj_test) [root@kevin-test pj_test]# ll -d /opt/project_test/pj_test/lib/python2.7/site-packages/jinja2/
drwxr-xr-x 2 root root 4096 Dec 17 18:26 /opt/project_test/pj_test/lib/python2.7/site-packages/jinja2/
 
在虚拟环境下,用pip安装的包都被安装到对应虚拟的这个环境下,系统Python环境不受任何影响。
也就是说,虚拟环境是专门针对具体的某个应用创建的。
 
[root@kevin-test ~]# pip -V
pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
 
如果没有启动虚拟环境,系统环境也安装了pip工具,那么packages将被安装在系统环境中.
为了避免发生此事,可以在~/.bashrc文件中加上 (最好添加下面的内容):
[root@kevin-test ~]# vim ~/.bashrc
export PIP_REQUIRE_VIRTUALENV=true
 
使配置生效
[root@kevin-test ~]# source ~/.bashrc
 
如果在没开启虚拟环境时, 在虚拟环境之外的系统上运行pip,就会提示错误:"Could not find an activated virtualenv (required)".

如上安装好virtualenv之后, 就可以解决python版本冲突问题和python库不同版本的问题了!!

virtualenv 用法小总结

1) 创建环境
virtualenv [新环境名] :这会再当前目录下创建一个新环境目录
可使用 virtualenv --help 来查看如何使用。可以使用参数 --python=/usr/bin/python3 来创建一个已经安装的的Python环境。
 
2) 使用环境
切换到项目的新环境目录
执行:source ./bin/activate 来激活环境,激活后在命令行的前面会出现新环境名称
接下来可使用pip命令安装新环境需要的各种包。(pip命令在创建新环境时自带)
 
3) 退出虚拟环境
deactivate
如果要删除虚拟环境,只需退出虚拟环境后,删除对应的虚拟环境目录即可。不影响其他环境。
 
4) 注意事项
如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:export PIP_REQUIRE_VIRTUALENV=true
或者让在执行pip的时候让系统自动开启虚拟环境:export PIP_REQUIRE_VIRTUALENV=true
 
5) 保证环境一致性
用pip freeze查看当前安装版本
[root@kevin-test ~]# pip freeze
 
另外:
[root@kevin-test ~]# pip freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 "pip list"在不产生requirements文件的情况下, 查看已安装包的列表。
 
这将会使另一个不同的开发者(或者是你本人,如果你本人需要重新创建这样的环境) 在以后安装相同版本的相同包变得容易。
将这个requirements.txt拷贝到新的机器环境下执行:
# pip install -r requirements.txt
 
这能帮助确保安装、部署和开发者之间的一致性。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12277.html