在本教程中,您将学习虚拟环境。 您将了解在Python中使用虚拟环境的重要性以及如何开始使用虚拟环境。
什么是虚拟环境?
虚拟环境是一种为项目维护单独空间的工具,该项目的依赖项和库都放在一个地方。 此环境特定于特定项目,并且不会干扰其他项目的依赖性。
例如,您可以处理使用库Z的1.0版的项目X,也可以维护使用库Z的2.0版的项目Y。
虚拟环境如何工作?
虚拟环境工具在项目目录中创建一个文件夹。 默认情况下,该文件夹名为venv
,但您也可以自定义命名。 它将Python和pip可执行文件保留在虚拟环境文件夹中。 激活虚拟环境后,之后安装的软件包将安装在特定于项目的虚拟环境文件夹中。
VirtualEnv入门
首先,请确保您的系统上已安装pip
。 您可以使用以下命令安装pip
:
sudo apt-get install python-pip python-dev build-essential
使用pip
,安装虚拟环境工具。
pip install virtualenv
要开始使用virtualenv
,您需要初始化并激活它。 首先创建一个新的Python项目目录PythonApp
。
mkdir PythonApp
导航到项目目录PythonApp
并通过键入以下命令来初始化虚拟环境:
virtualenv PythonAppVenv
上面的命令将为项目PythonApp
设置虚拟环境。
![设置虚拟环境](https://i-blog.csdnimg.cn/blog_migrate/2d15625e18664ecd8db15cbaece59e5b.png)
它在项目目录PythonApp
内创建一个名为PythonAppVenv
的文件夹。 它将Python和pip可执行文件保留在虚拟环境文件夹中。 虚拟环境激活后,为项目安装的所有新软件包都放在虚拟环境文件夹中。 这是文件夹结构:
![虚拟环境文件夹结构](https://i-blog.csdnimg.cn/blog_migrate/702f31c058cf8ba67d40a4228587eeb2.png)
要开始使用虚拟环境,您需要使用以下命令将其激活:
source PythonAppVenv/bin/activate
激活后,您应该能够在名称提示的左侧看到PythonAppVenv
名称。
![虚拟环境已激活](https://i-blog.csdnimg.cn/blog_migrate/c2f799eff611fe1dca83dc70decb7921.png)
让我们尝试将新软件包安装到项目PythonApp
。
pip install flask
新软件包应安装在虚拟环境文件夹中。 检查lib/python2.7/site-packages
的虚拟环境文件夹,您应该能够找到新安装的flask
软件包。 您可以在项目页面上了解有关Flask的更多信息。
![Flask软件包安装在虚拟目录中](https://i-blog.csdnimg.cn/blog_migrate/1a2c8a789c1f64433a25ac59dd7ea27a.png)
完成虚拟环境后,可以使用以下命令将其停用:
deactivate
更容易追踪包裹
使用Python程序时,您将安装该程序所需的其他软件包。 您继续工作,安装的软件包列表不断堆积。 现在到了需要将Python代码运送到生产服务器的时候了。 糟糕,您真的不知道为该程序安装了哪些软件包。
您所能做的就是打开Python程序,并检查所有已导入到程序中的软件包,然后逐一安装它们。
虚拟环境提供了一种更轻松的方法来跟踪项目中安装的软件包。 激活虚拟环境后,它将提供冻结环境软件包当前状态的工具。
您可以通过使用以下命令来实现:
pip freeze > requirements.txt
上面的命令创建一个名为requirements.txt
的文件,其中包含有关当前环境中版本的软件包的详细信息。 外观如下:
![需求文件](https://i-blog.csdnimg.cn/blog_migrate/90758700c97ec76e38649566b60cf8b7.png)
现在,此文件对于将项目部署到其他平台上确实很有帮助,因为所有项目依赖项都已在requirements.txt
文件中供您使用。 要使用requirements.txt
文件安装项目依赖项,请执行以下命令:
pip install -r requirements.txt
virtualenvwrapper
使事情变得更容易
virtualenv
工具对于开发人员确实是一个福音。 但是,当您必须处理多个虚拟环境时,它会变得非常复杂。 要管理多个虚拟环境,对virtualenv
工具进行了扩展,称为virtualenvwrapper
。
virtualenvwrapper
是virtualenv
工具的包装,该工具提供了管理多个虚拟环境的功能。
让我们开始使用pip安装virtualenvwrapper
。
pip install virtualenvwrapper
安装virtualenvwrapper
,需要设置将存储虚拟环境的工作目录。 执行以下命令来设置virtualenvwrapper
的工作目录:
export WORKON_HOME=.virtualenvs
上面的命令将virtualenvwrapper
的工作目录设置为home目录中的.virtualenvs
文件夹。
你可以源virtualenvwrapper
命令从终端运行或添加virtualenvwrapper
命令到.bashrc
。
source /usr/local/bin/virtualenvwrapper.sh
![源virtualenvwrapper](https://i-blog.csdnimg.cn/blog_migrate/82b4c2a102a9195afa15198aac67228f.png)
现在,可以通过按Tab键在当前终端中访问命令。 创建一个名为PythonProject
的新项目文件夹。 导航到项目目录。 之前,使用virtualenv
,首先创建了虚拟环境,然后将其激活。 使用virtualenvwrapper
,您可以使用单个命令完成这两项任务。
mkvirtualenv PythonVenv
上面的命令创建虚拟环境,然后将其激活。
![使用virtualenvwrapper激活虚拟环境](https://i-blog.csdnimg.cn/blog_migrate/418a13a323a762a976ae518305373b81.png)
要停用虚拟环境,您需要输入deactivate
命令。
deactivate
现在,你需要你工作的不同虚拟环境之间切换某些场景假设。 virtualenvwrapper
提供workon
方法来切换虚拟环境。 切换虚拟环境的命令是:
workon PythonV
在上面的命令中, PythonV
是虚拟环境的名称。 这是workon
显示workon
命令的图像:
![使用workon命令切换虚拟环境](https://i-blog.csdnimg.cn/blog_migrate/85701531d144001665a4a97a164437b4.png)
virtualenvwrapper
还提供命令以列出您环境中的虚拟环境。
ls $WORKON_HOME
上面的命令显示环境中存在的虚拟环境的列表。
![列出现有的虚拟环境](https://i-blog.csdnimg.cn/blog_migrate/914c3c2a6d6264e373071477537a1c01.png)
要删除现有的虚拟环境,可以使用rmvirtualenv
命令。
rmvirtualenv PV
![删除虚拟环境](https://i-blog.csdnimg.cn/blog_migrate/cfa9f65fd5d4b5fa6e094fb9178e4312.png)
有一个命令可以创建项目目录及其关联的虚拟环境。 导航到终端并执行以下命令:
mkproject NewPro
上面的命令应创建项目及其关联的虚拟环境。
![创建项目目录和关联的虚拟目录](https://i-blog.csdnimg.cn/blog_migrate/27d097f52b9a727e910a4a381272511a.png)
您可以在virtualenvwrapper
使用更多命令。 您可以通过键入以下命令来找到可用的命令列表:
virtualenvwrapper
![virtualenvwrapper中可用的命令列表](https://i-blog.csdnimg.cn/blog_migrate/abf34850b369b191c37a2dcf18fce6d1.png)
包起来
在本教程中,您了解了如何在Python中使用虚拟环境。 您了解了使用虚拟环境的重要性及其工作方式。 您还了解了virtualenvwrapper
,这是virtualenv
工具中用于管理多个虚拟环境的包装器。
您是否曾经在Python中使用过虚拟环境? 请在下面的评论中告诉我们您的想法。
翻译自: https://code.tutsplus.com/tutorials/understanding-virtual-environments-in-python--cms-28272