Gil*_*tes 22 python django virtual-machine virtualenv vagrant
我使用VirtualBox手动设置和virtualenvs在我的本地机器上运行Django项目.最近我发现Vagrant并决定改用它,因为它看起来非常简单和实用.
但我无法想象 - 我是否还需要使用virtualenv Vagrant VM,是鼓励练习还是被禁止?
D.S*_*ley 31
正如Devin所说,virtualenv只要您是机器的唯一用户,就不必在部署到流浪机时使用.但是,即使您不使用它进行开发或部署,我仍然可以使用a virtualenv,setup.py等.
在我(不那么)谦虚的意见中,任何Python项目都应该:
virtualenv目录.包含具有以下目标的Makefile:
virtualenv或创建虚拟环境pyvenvpip和require.txt文件安装所需的包setup.py develop使用虚拟环境运行setup.py test我们的想法是尽可能简化Makefile.应该设置依赖项,以便您可以克隆存储库(或提取源tarball)并运行make test.它应该创建一个虚拟环境,安装需求并运行单元测试.
您还可以在运行vagrant的Makefile中包含Vagrantfile和vagrant目标.当你在它时,添加到维护者清理目标.vagrant destroy
这使得您的项目可以被任何使用流浪者或没有它的人开发.如果(何时)您需要在流浪者或物理环境中与其他项目一起使用部署,包括干净的setup.py和描述最小环境的Vagrant文件,则可以轻松安装到虚拟环境或共享流浪者计算机中.
Dev*_*rre 12
如果每个项目运行一个vagrant VM,那么没有直接的理由使用virtualenv.
如果其他贡献者不使用vagrant,但确实使用virtualenv,那么你可能想要使用它并支持它以使他们的生活更轻松.
Virtualenv和其他形式的隔离(Docker,专用VM,......)不一定是互斥的.即使在隔离的环境中,使用virtualenv仍然是一个好主意,以保护虚拟系统Python不受项目包的影响.*nix系统使用过多的基于Python的实用程序,这些实用程序依赖于系统Python中可用的特定版本的软件包,你不想搞砸它们.
请注意,virtualenv仍然只能用于纯Python包,并且不能解决仍然与系统混合的本机扩展的情况.