为什么在 Python 中使用虚拟环境?

编程 · 2023-08-18 · 243 人浏览

Python 3.3版本之后自带venv,可直接代替virtualenv。

通过使用虚拟环境,可以:

  • 避免库和依赖项之间的冲突
  • 测试不同版本的库而不会影响系统范围的 Python 安装
  • 维护干净、有序的开发环境
  • 与其他人合作,同时确保库版本一致

使用 Python 虚拟环境

创建虚拟环境:python -m venv myenv。此命令会在当前目录中创建一个名为“myenv”的虚拟环境。-m 选项指定运行的是venv模块,最后的myenv是创建的虚拟环境路径。

在 Windows 上:

  • 激活虚拟环境:.\myenv\Scripts\activate
  • 退出虚拟环境:deactivate

最佳实践和建议

当进入虚拟环境时,请牢记以下最佳做法:

为每个项目创建一个虚拟环境:每当启动一个新项目时,就创建一个新的虚拟环境。这可确保工作空间干净且隔离。

使用需求文件:要记录和管理项目的依赖项,请创建一个 requirements.txt 文件。可以使用pip freeze > requirements.txt生成它,然后使用pip install -r requirements.txt将它们安装在新环境中。

激活和停用:在开始项目之前,请务必激活相应的虚拟环境,并在完成后将其停用。这可以避免混淆和潜在冲突。

版本控制:与他人合作,请在版本控制系统中包含虚拟环境设置说明。这可确保每个人都使用相同的环境。

升级 pip 和 setuptools:创建新的虚拟环境时,最好将pip和setuptools升级到最新版本。这可确保使用的是最新的工具。

使用虚拟环境

pip install scrapy -i https://pypi.douban.com/simple/

Scrapy爬虫框架依赖的库较多,如果出现报错,可采用wheel方式安装。推荐到 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应的wheel文件进行安装。

创建Scrapy项目:scrapy startproject Test

创建爬虫:scrapy genspider spidername domain,spidername是要创建的Spider名称,domain是允许爬取的域名。

运行爬虫:scrapy crawl spidername

调试Scrapy源码,可在项目根目录下新建main.py文件:

from scrapy.cmdline import execute
import sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy", "crawl", "spidername"])

然后调试main.py文件即可。

注意:下面是virtualenv相关内容,不推荐使用了

创建虚拟环境

pip install virtualenv
virtualenv 环境名称

激活、退出虚拟环境

打开终端,进入创建好的虚拟环境

cd Scripts
activate # 激活
deactivate # 退出
Python
Theme Jasmine by Kent Liao