12.虚拟环境和包
12.1.简介
Python 应用程序经常会使用一些不属于标准和模块的库。应用程序需要它特定版本的库,因为需要一个特定的 bug 已经修复的库或者它是使用了一个过时版本的库的接口写的。
如果应用程序 A 需要一个特定模块的 1.0 版本,但应用程序 B 需要该模块的 2.0 版本,这两个应用程序的要求是不同的。 ,安装版本 1.0 或版本 2.0 将导致其中一个应用程序不能运行。
这个问题的解决方案就是创建一个虚拟环境(通常简称为“virtualenv”),包含一个特定版本的 Python,以及一些附加包的独立目录树。
为解决前面的例子中的冲突,应用程序A 可以有自己的虚拟环境,其中安装了特定模块的1.0 版本。而应用程序B 拥有另外一个安装了特定模块2.0版本的虚拟环境。如果应用程序B需求一个库升级到3.0的话,这也不会影响到应用程序A的环境。
12.2.创建虚拟环境
用于创建和管理虚拟环境的脚本pyvenv。pyvenv通常会安装你的 Python 中的最新版本。这个脚本也可以安装特定版本的 Python,因此如果你的系统有多个版本Python的话,你可以运行pyvenv-3.5或者你想要的任何版本来选择一个指定的Python版本。
要创建一个虚拟环境,首先要确定一个你举办的活动目录目录运行pyvenv携带着名:
pyvenv 教程- env
如果不存在的话,这将创建一个tutorial-env目录,并且目录里面创建一个 Python 解释器、标准库,以及各种配套文件的 Python“副本”。
你已经创造了一个虚拟环境,你必须激活它。
在 Windows 上,运行:
教程- ENV /脚本/激活
在 Unix 或 MacOS 上,运行:
源 教程- env / bin / activate
(这个脚本是用bash外壳编写的。如果你使用CSH或者鱼壳,应该你使用activate.csh状语从句:activate.fish来替代。)
激活了虚拟环境会改变你的外壳,显示你正在使用的虚拟环境,并且可以使你运行将修改你的使用环境,从而python得到特定的 Python 版本。
- > 源 ?/ ENVS /教程- ENV /仓/激活(教程- ENV ) - > 蟒的Python 3.5 。2 + ( 3.4 : c7b9645a6f35 + , May 22 2015 , 09 : 31 : 25 ) ... >>> 导入 系统>>> 系统。路径[ '' , '/usr/local/lib/python35.zip', ... , '~/envs/tutorial-env/lib/python3.5/site-packages' ] >>>
12.3.使用pip管理包
一旦你激活了一个虚拟环境,可以使用一个叫做PIP程序来安装,升级以及删除包。情况默认下pip将会从Python包索引,<
https://pypi.python.org/pypi >,中安装包。你可以通过 络浏览器浏览它们,或者你也可以使用pip有限的搜索功能:
(教程- ENV ) - > PIP 搜索 天文学skyfield - 优雅 天文学 为 Python的加里 - 银河 天文学 和 引力 动力学。鲁巴 - 在 美国 合众国 海军 天文台 NOVAS 天文学 库astroobs - 提供 天文 历表 来 计划 望远镜 观测PyAstronomy - 一个 集合 的 天文 相关 工具 的 Python的。...
pip有许多子命令:“搜索”,“安装”,“卸载”,“冻结”(译者注:这个词汇暂时没有的词请来翻译),等等。(参考安装-索引指南获取pip更多完整的文档。)
你可以安装一个包的最新版本,通过指定包的名称:
-> pip install novas收集 novas 下载 novas - 3.1 。1.3 . 焦油。gz ( 136 kB )安装 收集的 软件包: novas 运行 安装程序。py install for novas成功 安装了 novas - 3.1 。1.3
你也可以安装一个指定版本的包,通过发布包名紧随==和版本号:
-> pip 安装 请求== 2.6 。0收集 请求== 2.6 。0 使用 缓存 请求- 2.6 。0 - py2 。PY3 -无-任何。whl安装 收集的 软件包: 请求成功 安装 请求- 2.6 。0
如果你重新运行命令(pip install requests==2.6.0),pip会注意到要求的版本已经安装了,不会有任何问题。你也可以提供一个不同版本的来安装,或者运行来升级包到最新版本:pip install –upgrade
-> pip install -升级 请求收集 请求安装 收集的 包: 请求 找到 现有 安装: 请求 2.6 。0 卸载 请求- 2.6 。0 : 成功 卸载 请求- 2.6 。0成功 安装 请求- 2.7 。0
pip uninstall 之后再跟一个或几个包名将从虚拟环境中移除这些包。
pip show 将显示一个指定的包的信息:
pip list 即将全部安装在虚拟环境中的包:
(教程- ENV ) - > PIP 列表新星 (3.1 。1.3 )numpy的 (1.9 。2 )PIP (7.0 。3 )的请求 (2.7 。0 )setuptools的 (16.0 )
pip freeze将会生成一个类似需要安装的包的列表,但是输出采用了。的期望格式常见的做法就是把它们放在一个文件:pip installrequirements.txt
(教程- ENV ) - > PIP 冷冻 > 要求。TXT (教程- ENV ) - > 猫 的要求。txt新星== 3.1 。1.3 numpy == 1.9 。2 个请求== 2.7 。0
requirements.txt用户可以使用安装所有必须的包:install -r
- > PIP 安装 - [R 的要求。txt收集 新星== 3.1 。1.3 (从 - ? 要求。TXT (线 1 )) ...收集 numpy的== 1.9 。2 (从 - ? 要求。TXT (线 2 )) ...收集 请求== 2.7 。0 (从 - - [R 的要求。txt (第 3行)) ...安装 收集的 软件包: novas 、 numpy 、 请求 运行 安装程序。py install for novas成功 安装了 novas - 3.1 。1.3 numpy - 1.9 。2 个 请求- 2.7 。0
pip还有更多的选项。请安装-索引指南获取pip完整的参考文档。当你写一个包并且在 Python 包索引中也出现的话,请参考分发-索引指南。
下一个 以前的
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!