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

时间:2013-12-28 16:53:40

标签: python virtualenv virtualenvwrapper

在浏览virtualenv之后,我的印象是应该为我创建的每个项目创建虚拟环境(相关并使用相同的站点包)。

这是真的,为什么或为什么不呢?

此外,如果我目前正在为我的某个项目使用virtualenv,那么在升级包时会如何进行升级呢?

4 个答案:

答案 0 :(得分:1)

通常这被认为是良好的做法。但是,请记住,如果您有多个大型项目,这可能会相当快地导致磁盘消耗。此外,如果您的项目中具有低级系统集成,有时virtualenv可能不合适。

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

答案 1 :(得分:1)

我的印象是应该为我创建的每个项目创建虚拟环境(相关并使用相同的网站包)。

<强>答案: 即可。您为一组具有相同特征的项目保留了一个virtualenv。

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

<强>答案: 在我看来,很难。你必须记住每个virtualenv是哪个版本,你创建了多少个虚拟版,每个项目有什么特征,如果你升级它们会破坏吗,其他依赖模块如果您在其中上传一个库,则会中断...,这本身就很痛苦

我做什么.. 我从来没有去过virtualenv。

答案 2 :(得分:0)

您应始终创建虚拟环境。 它易于与之交互,它可以避免项目之间的冲突。

激活环境后,您可以像这样升级所有软件包:

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

答案 3 :(得分:0)

根据此帖子,https://rushter.com/blog/python-virtualenv/

仅将python解释器(可执行文件)和诸如pip,easy_install之类的一些内容复制到venv项目的本地目录中。所有标准库文件(例如io,random,struct ...)都是从venv目录链接的,而不是被复制的。因此,您的磁盘空间不会很快增加。