1.2.5 Python虚拟环境安装

pyenv可以说是很好地帮助我们解决了Linux环境下的多版本问题,但它也有不足之处,例如,不能支持Windows平台、不能很好地解决依赖库迁移的问题。而Python提供的虚拟环境工具就可以很好地解决这两个问题。

这里的虚拟环境特指Python的第三方库环境,通常一个版本的Python只会在同一个目录下管理所有的第三方库。这种情况下,一旦有多个项目的依赖版本不一致,就会导致两个项目不能共存。

虚拟环境工具可以基于特定版本的Python,隔离出多个不同的第三方库环境。不同项目可以根据自己的需求来指定特定的虚拟环境,从而避免依赖库冲突的问题。Python下虚拟环境的工具有很多,如Python 2下的virtualenv、Python 3下的venv。本小节介绍的则是更加易用的pipenv。

pipenv的宗旨是提供简单、方便、易用的Python库管理功能。它可以为你的项目自动地创建和管理一个虚拟环境,同时还提供了项目依赖库迁移的功能。下面我们就来学习如何安装和使用pipenv工具。

1. 安装

pipenv是作为Python的一个第三方库来发布的,所以和安装其他第三方库一样,只需要在命令行执行以下命令即可:

>> pip install pipenv

安装成功后,可以通过-version参数来查看具体的版本信息,具体命令如下:

>> pipenv –version
pipenv, version 2018.11.26

如果能正确返回版本信息,则表示pipenv库安装成功。

2. 使用虚拟环境

通过pipenv创建虚拟环境的方式非常简单,首先从命令行进入具体的项目路径,如D:\projects\test,然后执行如下的命令即可:

>> cd D:\projects\test
>> pipenv install

上述命令会为当前目录创建一个虚拟环境,如果当前目录下有requirements.txt文件,则会自动安装该文件中的全部依赖库。当然,你也可以指定一个需要安装的库名来进行安装。例如,安装requests库的命令如下:

>> pipenv install requests
>> pipenv install requests==2.20.0  # 指定版本号

同样,还可以显式地指定一个requirements.txt文件来进行安装:

>> pipenv install -r /path/to/requirements.txt

对于需要通过源码setup.py来安装的依赖库,则可以通过如下命令安装:

>> pipenv install -e .

如果需要激活此虚拟环境,则需要执行如下命令:

>> pipenv shell
Loading .env environment variables...
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
>> python /path/to/script.py

执行上述命令后,当前命令行将进入Python的虚拟环境,在该虚拟环境中,之前安装的Python库将会直接生效,并且与外部环境的库环境是相隔离的。

此外,还有一种方式可以让虚拟环境生效,并且在该虚拟环境中执行一次Python命令。其使用方式如下:

pipenv run python /path/to/script.py

最后,如果需要删除虚拟环境中已安装的库,可以通过uninstall命令来实现。具体如下:

>> pipenv uninstall requests    # 仅删除requests库
>> pipenv uninstall –all        # 删除全部库

3. 依赖库信息提取

pipenv还提供了一个依赖库迁移的功能,即可以把当前虚拟环境中已安装的依赖库信息导出到requirements.txt文件,这样在新的环境中就可以通过该requirements.txt文件安装全部的依赖库,从而达到依赖库准确迁移的目的。提取依赖库的命令如下:

>> pipenv lock -r