# -*- encoding: utf-8 -*-
import os
'''
第53条: 用虚拟环境隔离项目,并重建其依赖关系
关键:
1 依赖性的传递
查看python包依赖于的其他包:
执行命令:pip show pecan
输出结果:
Name: pecan
Version: 1.3.2
Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies.
Home-page: http://github.com/pecan/pecan
Author: Jonathan LaCour
Author-email: info@pecanpy.org
License: BSD
Location: /usr/lib/python2.7/site-packages
Requires: WebOb, six, logutils, singledispatch, Mako, WebTest
You are using pip version 9.0.3, however version 19.0.3 is available.
问题根源:
同一时刻,python只能把模块的某一个版本,
安装为整个系统的全局版本。如果某个软件包需要共同依赖包的旧版本,
另一个软件包需要共同依赖包的新版本,就会带来问题。
解决方法:
通过pyvenv工具。该工具提供一套虚拟环境。
python 3.4版本通过: python -m venv命令来访问。
之前python版本: 通过 pip install virtualenv
2 pyvenv命令
大致与virtualenv相同
将开发环境对软件包的依赖关系导入
requirements.txt中,即执行如下命令:
pip freeze > requirements.txt
3 virtualenv用法
安装:
yum install python-virtualenv
或者
pip install virtualenv
生成一个虚拟环境:
virtualenv ENV
让虚拟环境生效:
source ENV/bin/activate
安装依赖文件
pip install -r requirements.txt
让虚拟环境失效:
deactivate
4 总结
虚拟环境可以在同一台电脑安装软件包的多个版本,pyvenv和
virtualenv可以构建虚拟环境,pip freeze > requirements.txt
可以将当前依赖写入到文件中。
参考:
Effectiv Python 编写高质量Python代码的59个有效方法
'''
def process():
pass
if __name__ == "__main__":
process()