我曾使用VirtualBox手动设置虚拟环境来运行本地Django项目,并在其中使用virtualenv。最近我发现了Vagrant并决定切换到它,因为它看起来非常简单和有用。
但是我无法确定-我是否仍然需要在Vagrant VM中使用virtualenv,它是否被鼓励使用或被禁止使用?
我曾使用VirtualBox手动设置虚拟环境来运行本地Django项目,并在其中使用virtualenv。最近我发现了Vagrant并决定切换到它,因为它看起来非常简单和有用。
但是我无法确定-我是否仍然需要在Vagrant VM中使用virtualenv,它是否被鼓励使用或被禁止使用?
正如Devin所述,如果您是机器的唯一用户,则在部署到vagrant机器时不需要使用virtualenv
。但是,即使您不在开发或部署中使用它,我仍然建议启用virtualenv
、setup.py等。
在我(并不那么)谦虚的意见中,任何Python项目都应该:
virtualenv
目录。包括一个具有以下目标的Makefile:
virtualenv
或pyvenv
创建虚拟环境。pip
和requirements.txt文件安装所需软件包。setup.py develop
。setup.py test
。这个想法是让Makefile尽可能简单。依赖关系应该设置得这样,以便您可以克隆存储库(或提取源代码tarball)并运行make test
。它应该创建一个虚拟环境,安装要求,并运行单元测试。
虚拟环境(Virtualenv)以及其他形式的隔离(Docker、专用VM等),并不一定是互相排斥的。即使在隔离环境下,使用虚拟环境仍然是个好主意,可以保护虚拟系统Python免受项目包的影响。*nix系统使用大量基于Python的工具,这些工具依赖于特定版本的包在系统Python中可用,您不希望干扰它们。
请注意,虚拟环境仍然只能处理纯Python包,并不能解决与系统混合的本机扩展的情况。
pip install
安装包。因此,每个Python软件都应该支持setuptools。 - erikbstack