代码详解:Python虚拟环境的原理及使用(2)
如果想要安装第三方库的特定版本,比如numpyv1.15.3,可像往常一样使用pip。
现在可在脚本或活动的Python shell中导入numpy。例如,假设项目包含以下几行脚本tests / imports-test.py。
直接从命令行运行这个脚本时,可得到:
成功。脚本导入numpy没有故障。 但丁和Virgil穿过Styx河—但丁《神曲·地狱篇》第八章 插图:Gustave Doré 4. 管理环境 (1) 需求文件 使我们的工作成果可被他人重新使用的最简单方法是在项目的根目录(顶层目录)中加入一个需求文件。为此,需要运行pip freeze,以下列出已安装的第三方软件包及其版本号:
并将输出写入文件,我们称之为requirements.txt。
更新软件包或安装新软件包时,都可使用相同的命令重写需求文件。 现在,任何共享项目的人都可以使用requirements.txt文件,通过复制环境以在系统上运行项目。 (2) 复制环境 等等——究竟是怎么做到的? 想象一下,我们的队友Sara从团队的GitHub存储库中删除了测试项目。在她的系统上,项目的目录树如下所示:
注意到有点不寻常的东西了吗?是的,没错!没有venv /文件夹。 我们已经将它从团队的GitHub存储库中删除,因为它的存在可能会引起麻烦。 这就是使用requirements.txt文件对复制项目代码至关重要的一个原因。 要在机器上运行测试项目,Sara需要做的就是在项目的根目录中创建一个虚拟环境:
并使用pip install -r requirements.txt将项目的依赖项安装在活动的虚拟环境中。
现在,Sara系统上的项目环境与我们的系统完全相同。很整洁,不是吗? (3) 故障排除 可惜事情并不总是按计划进行,总会遇到一些问题。也许错误地更新了特定的站点包后发现自己处于Dependency Hell的第九级,无法运行单行项目代码。也许它没那么糟糕,可能你会发现自己竟处于第七级。 无论你发现自己处于何种程度,解决问题并再次看到希望的最简单方法是重新创建项目的虚拟环境。
(编辑:ASP站长网) |