[python3教程]第十二章.虚拟环境和程序集(VIRVUAL ENVIRONMENTS AND PACKAGES)

12.1 Introduction

python应用通常会送许多标准库之外的程序集和模块。有时候还会指定库的版本,因为有些bug可能在这个版本才修复,或者有些库的接口这有这个版本才适用。这就意味着一个python安装包难以迎合所有的应用需求。如果A应用需要1.0版而B应用需要2.0版,这样的话两个应用的需求就是冲突的,无论装1.0版还是2.0版都会导致另外一个应用不能用。
为了解决这个问题可以使用一个虚拟环境,用一个包含自身的树来装一个恰当的版本,然后增加一部分程序集。不同的应用可以使用不同的虚拟环境。为了解决上面提到的需求冲突问题,应用A可以使用1.0的虚拟环境应用B使用2.0的应用环境。如果应用B需要升级到3.0版本并不会影响应用A的环境。

12.2 Creating Virtual Environments

venv模块是用来创建虚拟环境的模块。venv通常会安装你可用的最新版本python。如果你有许多版本的python,你需要制定你要的版本。
要创建一个虚拟环境,首先要定好安置这个环境的文件夹,方法很简单就是像运行脚本一样运行venv模块然后在后面加上文件夹的地址,看到这一定想到了我们前章张说的如很使用脚本了吧:

python -m venv tutorial-env

如果文件夹不存在就会生成一个这个名字的文件夹,同时里面也会创建包含解释器、标准库、其他支持文件的文件夹。
当你已经创建了一个虚拟环境后,你就可以激活他了:
在windows中,运行\tutorial-env\Scripts\activate.bat
在UNIX或者MAC系统中,运行:source tutorial-env/bin/activate
(这个脚本是为bash shell写的,如果你用的是csh或者fish的话需要替换成activate.csh或者activate.fish)
激活了虚拟环境后我们的提示符就会变化,他会显示我们使用的是哪一个虚拟环境,同时会设置环境让你在运行python时使用的是你想要的版本。举个例子:

$ source ~/envs/tutorial-env/bin/activate
(tutorial-env) $ python
Python 3.5.1 (default, May 6 2016, 10:59:36)
    ...
>>> import sys
>>> sys.path
['', '/usr/local/lib/python35.zip', ...,
'~/envs/tutorial-env/lib/python3.5/site-packages']
>>>

12.3 Managing Packages with pip

你可以使用pip模块来安装、升级、删除程序集。默认情况下pip会从python程序集序列中安装程序集Python Packages Index。你可以是用你的网页浏览器来浏览这个程序集序列,也可以使用pip来按条件搜索你想要的内容:
这里写图片描述
使用powershell进入虚拟环境之前可能需要对脚本的签名授权进行调整,说实话这个设置坑了我好半天。
pip还有些更具体的命令:search,install,uninstall,freeze等等。(完整的文档可以在安装向导里面查找)
你只要指定了程序集的名字就可以安装最新版本的程序集:

(tutorial-env) PS C:\users\Administrator\pyex> pip install novas
Collecting novas
    Downloading novas-3.1.1.3.tar.gz (136kB)
Installing collected packages: novas
    Running setup.py install for novas
Successfully installed novas-3.1.1.3

也可以安装指定的版本,只要用==加上版本号就可以了:

(tutorial-env) PS C:\User\Administrator\pyex> pip install requests==2.6.0
Collecting requests==2.6.0
Using cached requests-2.6.0-py2.py3-none-any.whl
Installing collected packages: requests
Successfully installed requests-2.6.0

如果重新运行这个命令,pip会发现要求的版本已经安装上了,然后什么都不做。也可以设定一个别的版本来下载,或是使用pip install –upgrade来把版本更新到最新的版本。
使用pip uninstall后加程序集的名字来把程序集从虚拟环境中删除。
使用pip show package来显示一个package的信息。
pip list会显示所有安装在虚拟环境中的程序集。
pip freeze也是把所有的程序集输出,不过格式不一样,使用==来表示版本。导出的pip freeze可以作为配置文件,直接用pip install -r 文件名.txt来安装这些程序集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值