您是否尝试为新项目安装 Python 包,却发现其他项目因某些兼容性问题而中断?您可以借助 Python 中的 virtualenv 来避免这种情况。
virtualenv
是一款可用于在 Python 中创建虚拟环境并管理 Python 包的工具。它可帮助您避免全局安装包;全局安装可能会导致某些系统工具或其他包损坏。
例如,假设
项目 A
和
项目 B
需要相同的库。虽然乍一看这似乎不是什么大问题,但如果您需要在
项目 A
和
项目 B
。这会成为一个问题,因为 Python 无法区分目录中的版本号
site-packages
。
这时在 Python 中设置虚拟环境就非常有用了。这也是帮助你编写更好的 Python 代码的绝佳做法。
在本文中,我们将展示如何
virtualenv
在 Python 中安装。然后,我们将探索如何在 Python 中设置虚拟环境并使用存储库。
让我们开始吧!
在 Python 中 安装 virtualenv
Python 中的虚拟环境允许您为项目创建一个隔离的环境。这意味着您的项目可以拥有自己的依赖项 - 独立于其他每个项目的依赖项。
每个项目都有一个 Python 虚拟环境,您可以自由地为每个项目安装同一 Python 包的不同版本。这是因为每个 Python 环境都独立于所有其他环境。
从本质上讲,Python 中的虚拟环境只是包含一些脚本的目录;因此,您可以根据需要设置任意数量的 Python 虚拟环境。
让我们
virtualenv
在 Python 中安装!
virtualenv
安装很简单。首先,让我们更新pip。
pip install --upgrade pip
pip --version
我的输出:
pip 22.0.3
接下来,您可以安装
virtualenv
:
pip install virtualenv
现在
virtualenv
已安装完毕,让我们在 Python 中创建一个名为的虚拟环境
mytest
:
virtualenv -p python3 mytest
您将获得类似于以下的输出:
created virtual environment CPython3.8.11.final.0-64 in 10455ms creator CPython3Windows(dest=C:\Users\xavie\mytest, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\xavie\AppData\Local\pypa\virtualenv) added seed packages: pip==22.0.3, setuptools==60.6.0, wheel==0.37.1 activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
现在我们开始吧!在下一节中,我们将探索在 Python 中使用
virtualenv
在
virtualenv
官方 Python 文档
找到有关
.
在 Python 中 使用和维护 虚拟环境
在新的 Python 虚拟环境中安装或使用包之前,您需要激活它。
在 Mac 或 Unix 中
如果您是 Mac 或 Unix 用户,您可以按如下方式操作:
source mytest/bin/activate
接下来,您可以使用以下命令检查您是否处于虚拟环境中:
which Python
它应该位于以下
mytest
目录中:
.../mytest/bin/python
就这样!现在您可以开始安装项目所需的软件包。
在 Windows 中
如果您是 Windows 用户,您可以通过 以下方式 virtualenv
.\mytest\Scripts\activate
现在你的提示应该以你的环境名称作为前缀;在本例中,它是
mytest
.
接下来,您可以使用以下命令检查您是否处于 Python 虚拟环境中:
where Python
和Mac或者Unix环境一样,应该指示
mytest
目录:
...\mytest\Scripts\python.exe
现在您可以安装所需的所有软件包。您可以单独安装,也可以借助文件安装
requirements.txt
。如果您不知道如何操作,请参阅我之前关于
如何创建 Python 需求文件的
.
但
virtualenv
其内部是如何运作的呢?
一旦激活 Python 虚拟环境,Python 可执行文件的路径就会发生变化。这是因为
$PATH
环境变量在活动环境中被修改了。
激活 Python 虚拟环境后,bin 目录现在位于路径的开头,这意味着 shell 使用虚拟环境的实例而不是 Python 系统版本。
重要提示:不要将 Python 脚本和 requirements.txt 文件存储在 Python 虚拟环境中。
在 Python 中删除虚拟环境
在 Python 中删除虚拟环境的最简单方法是手动删除文件夹。通过将 Python 脚本保留在文件
virtualenv
,可以避免下次清除 Python 虚拟环境时删除整个项目的风险。
此外,您可能希望对不同的项目使用相同的虚拟环境。将所有 Python 脚本保存在文件夹之外将使整个过程更易于处理。
如果你是 Python 新手,想要快速提高技能,我强烈建议你查看我们的 Python 编程课程 .
和 pyenv 怎么样 pyenv-virtualenv ?
pyenv-virtualenv
是一个
pyenv
pyenv
pyenv
当您需要安装和切换不同版本的 Python 时,它会非常方便;但是,我们无法使用任意版本的 Python 创建虚拟环境。
有了
如果您想了解有关此主题的更多信息,-virtualenv
,在不同的虚拟环境中切换 Python 版本就更容易了。
pyenv
pyenv
使用 virtualenv 与存储库
现在,你可能想要将你的项目推送到 GitHub 。在 Python 虚拟环境中完成工作后,你首先需要初始化存储库:
git init
然后,您需要将该
mytest
文件夹包含在
.gitignore
文件中。这样,Python 虚拟环境将在源代码管理中被忽略。
echo 'mytest' > .gitignore
完成后,我们可以将项目的依赖项放在一个
requirements.txt
文件中:
pip freeze > requirements.txt
该
freeze
命令将读取依赖项并创建一个包含依赖项列表及其版本号的文本文件。
完成后,我们将要推送的文件添加到存储库:
git add requirements.txt
最后,我们提交文件并将项目推送到我们的存储库。
我想在这里强调一下文件的重要性
requirements.txt
。如果没有文件,其他人使用项目可能会很困难。
例如,假设您有一个 Open3D 项目用于处理点云,并且您使用它
JVisualizer
在 Jupyter Notebook 中运行可视化。您使用 Open3D 0.12.0 来构建项目;后来,您决定将项目上传到 GitHub 上与您的朋友分享。如果您不添加文件
requirements.txt
并让您的朋友简单地安装最新版本的 Open3D (0.14.1),他们将无法运行您的 Jupyter Notebook。
通过提供信息来重新创建您在项目中使用的相同虚拟环境,您将使其他人的一切运行得更顺畅。这将为您省去麻烦——在他们创建虚拟环境后,您的同事只需输入以下行:
pip install -r requirements.txt
如果你需要更多关于使用 GitHub 的信息,可以
在这里阅读 Kateryna 的 Git 快速指南
。如果你没有及时更新
requirements.txt
文件,请查看
我的文章,了解如何轻松修复
.
Python 中的 virtualenv 的总结
在 Python 中设置虚拟环境 virtualenv 以及它的重要性。我们还学习了如何将虚拟环境与 GitHub 结合使用。
virtualenv 将使您作为开发人员的生活更加轻松,并帮助您编写更简洁的代码。如果您还没有这样做,我鼓励您在开始新项目时养成设置 Python 虚拟环境的习惯。
最后但同样重要的是,你可以 在这里找到更多编写更好的 Python 代码的技巧 。记得访问 获取更多内容。
发表评论 取消回复