外观
Python 虚拟环境和 PyPI
虚拟环境
什么是虚拟环境?
简单来说,虚拟环境就是另一个与主环境互相独立的 Python 解释环境,是 Python 主环境的一个副本。至于虚拟环境的生成我们暂且不提。
虚拟环境中包含了半独立的 Python 的解释器和包管理器。
- 独立:环境中只有 Python 标准库,并没有 PyPI 的三方库,且后期安装三方库也互不干涉
- 不完全独立:主环境必须存在,否则虚拟环境无法使用(针对 Python 内置的 venv 模块生成的虚拟环境而言)
为什么要用虚拟环境?
很显然,一个环境中不可能有两个不同版本的 PyPI 包——要真是这样,那么你的 Python 文件该怎么写?何况 pip 根本就不让你这么做。所以当开发的不同项目所需依赖库版本不同或是依赖库之间出现兼容问题时,我们就需要多个环境来安装不同版本的依赖库。
另外,虚拟环境也是对主环境的一种保护。万一你某一天玩 pip 然后把主环境搞乱了用不了了,那么解决办法无疑就是重装Python,还有要把所有之前安在主环境的依赖库重新安装一遍。但要是这样的事情发生在虚拟环境,那么只需要重新创建一个虚拟环境然后重安依赖库就好了,省去了重新安装 Python 以及配置 Python 的步骤。
如何使用虚拟环境?
创建虚拟环境
自 Python 3.6 开始,其自带一个虚拟环境创建工具:venv
。
python -m venv <env_name>
:::
其中<env_name>
是虚拟环境的名字,在创建虚拟环境时是必须的。下面是完整的命令,将会在运行命令的目录下创建一个名为venv
的虚拟环境:
python -m venv venv
:::
这之后,我们需要激活此虚拟环境,才可以使用。
创建完成后,我们可以发现在运行命令的目录下多了一个和我们虚拟环境名称一样的文件夹。这就是虚拟环境的本体。
激活虚拟环境
Windows 下,必须使用 cmd 才可以正常进入虚拟环境,PowerShell 无法激活虚拟环境!
<env_name>/Scripts/activate.bat
:::
下面是代码示例:
venv/Scripts/activate.bat
:::
激活后,cmd 路径前面用圆括号显示了被激活环境的名称。你也可以通过pip -V
检查虚拟环境是否激活成功。
取消激活虚拟环境(退出虚拟环境)
同样使用cmd,在其中输入deactivate
退出当前的虚拟环境。
PyPI
它是什么?
PyPI(The Python Package Index)是一个 Python 三方库的社区,也是 pip 的老家。所有pip install
安装的库都是在这里下载的。它既然是个社区,也允许其他开发者上传自己的库。如果你有兴趣也可以自己写一个库然后传到 PyPI 上供全球开发者使用!
它能干吗?
如上部分所述,它是个社区类的网站,我们在上面寻找Python的第三方库以及发布我们自己的第三方库。Cool!
如何使用?
此处我们以安装 requests 为例。若要安装其它包,请将下面命令中所有的 requests 换成你自己需要装的包。
Tips:你可以同时安装多个包,命令格式如下:
pip install <pkg1> <pkg2> <pkg3>
确认你的 Python 环境
如果你需要使用虚拟环境,请检查是否已经配置好,具体请参考本文前半部分。
更换源站
众所周知,由于一些不可抗力因素,中国大陆访问这些境外网站速度较慢。好在,中国的大型企业、高校等运营了公益的镜像站方便我们使用。因此,首次使用时我们可以根据需要配置源站。
更改 PyPI 源站地址命令如下(可能需要管理员权限):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学镜像站,更新周期为 5min
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 阿里云镜像站,更新周期较长,但下载速度快
:::
安装包
pip install requests
pip install requests==1.0.0 # 指定版本
:::
看到 Successfully installed requests-x.x.x 这样的提示就表明安装成功了。
临时使用默认仓库
如果有时候我们需要刚刚上传到 PyPI 的包(特别是在我们自己开发 PyPI 项目时),此时镜像站更新可能不及时,我们可以临时使用 PyPI 原始仓库,例如:
pip install requests -i https://pypi.python.org/simple/
版权所有
版权归属:异想之旅 | YuzhenQin | 程家麒