一、概述
Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。
这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2.0版本,则需求存在冲突,安装版本1.0或2.0将导致某一个应用程序无法运行。
这个问题的解决方案是创建一个虚拟环境,也就是创建一个新的软件及其工具包目录,并其中安装特定Python版本,以及许多其他包。
通过不同的应用可以使用不同的虚拟环要解决先前的冲突需求示例,应用程序A可以拥有自己的1.0版本安装虚拟环境,而应用程序B则具有2.0版本的另一个虚拟环境。如果应用程序B要求将库升级到3.0版本,也不会影响应用程序A的环境。
二、创建虚拟环境
用于创建和管理虚拟环境的模块称为 venv。venv 通常会安装你可用的最新版本的 Python。如果您的系统上有多个版本的 Python,您可以通过运行您想要的任何版本来选择特定的Python版本。
要创建虚拟环境,请确定要放置它的目录,并将 venv 模块作为脚本运行目录路径:
例如,我们想要在D盘的VirtualEnvironment目录作为虚拟环境的根目录,而这里,我们要创建一个名称为spider的虚拟环境。
1、在Windows系统的控制台下切换到指定的位置
d:
cd VirtualEnvironment
2、创建spider虚拟环境
python -m venv spider
如果VirtualEnvironment下面没有spider目录,就会创建一个新的spider目录,然后创建包含Python解释器,标准库和各种支持文件的副本的目录。注意:这个目录中的解释器应该就是你当前使用的python版本。
三、激活和退出虚拟环境
创建虚拟环境后,您可以激活它。
在Windows上,运行:spider\Scripts\activate.bat
在虚拟环境使用完毕后,可以退出它。
在Windows上,运行:spider\Scripts\deactivate.bat
四、导出pip包
为了查看当前虚拟环境中安装了哪些包,可以将其名称导出。
在Windows上,运行:pip freeze > requirement.txt
五、导入依赖pip包
为了能够复现其他环境,可以将从其他环境中的导出的内容进行导入安装。
在Windows上,运行:pip install -r requirement.txt
执行命令过程中,pip就会根据requirement.txt文件中的包名称和版本号进行安装。
六、阶段案例
在D:\VirtualEnvironment中创建一个名称为spider的虚拟环境,激活该虚拟环境,并安装requests和scrapy包,然后导出当前虚拟环境中的软件包到requirements.txt文件,退出spider虚拟环境。然后创建一个名为test的虚拟环境,导入刚刚导出的requirements.txt文件作为依赖文件,并列出虚拟环境中所有的软件包
过程参考:
d:
cd VirtualEnvironment
python -m venv spider
spider\scripts\active
pip install requests scrapy
pip freeze > requirements.txt
spider\scripts\deactive
python -m venv test
test\scripts\active
pip install -r requirements.txt
pip list
test\scripts\deactive