Python 我应该为每个项目创建一个虚拟环境吗?

Python 我应该为每个项目创建一个虚拟环境吗?,python,virtualenv,virtualenvwrapper,Python,Virtualenv,Virtualenvwrapper,在谷歌搜索了virtualenv之后,我的印象是,应该为我创建的每个项目创建虚拟环境(这些项目是相关的,并且使用相同的网站包) 这是真的吗?为什么 另外,如果我目前正在为我的一个项目使用virtualenv,那么当软件包升级时,我将如何进行升级?您应该始终创建一个虚拟环境。 它很容易与之交互,并且允许您避免项目之间的冲突 激活环境后,您可以按如下方式升级所有软件包: pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip

在谷歌搜索了virtualenv之后,我的印象是,应该为我创建的每个项目创建虚拟环境(这些项目是相关的,并且使用相同的网站包)

这是真的吗?为什么


另外,如果我目前正在为我的一个项目使用virtualenv,那么当软件包升级时,我将如何进行升级?

您应该始终创建一个虚拟环境。 它很容易与之交互,并且允许您避免项目之间的冲突

激活环境后,您可以按如下方式升级所有软件包:

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U

一般来说,这被认为是良好的做法。但是,请记住,如果您有多个大型项目,这可能会很快导致磁盘消耗。此外,如果项目中的系统集成级别较低,则有时virtualenv可能不合适

如果您正在共享您的项目,最好为pip发布一个需求文件,以便人们可以复制您的项目。Virtualenv使这变得容易。不为项目创建唯一的VirtualNV的一种替代方法是指定一个需求文件,然后通过创建VirtualNV并加载需求文件并查看项目是否运行来进行测试

Q:我的印象是,应该为我创建的每个项目创建虚拟环境(这些项目相关且使用相同的网站包)

回答: 。为一组具有相同特征的项目保留一个VirtualNV

Q:另外,如果我目前正在为我的一个项目使用VirtualNV,当软件包升级时,我将如何进行升级

回答: 在我看来,这很难。你必须记住每个virtualenv是哪个版本,你创建了多少个virtualenv,每个项目都有什么特点,如果升级,它们会坏吗?如果上传一个库,其他依赖模块会坏吗?这本身就是一种痛苦

我所做的。 我从不喜欢虚拟电视

根据这篇帖子


只有python解释器(可执行文件)和一些东西(如pip、easy_install)被复制到venv项目的本地目录。所有标准库文件,如io、random、struct。。。从您的venv目录链接,而不是复制。因此,您的磁盘空间不会很快增加。

您可以使用
pip安装轻松升级软件包--upgrade packagename
是的,但是您的项目可能对非标准python模块和其他外部代码有很高的要求。如果您有多个这样的项目,可能会很快耗尽磁盘空间。