Effective Python 读书笔记: 第53条: 用虚拟环境隔离项目,并重建其依赖关系

# -*- 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: [email protected]
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() 

猜你喜欢

转载自blog.csdn.net/qingyuanluofeng/article/details/89076471