为每个项目和每个阶段(开发,推动,.)我使用不同的linux用户。我可以使用pip和--user选项在$HOME中安装软件包。
我的孤立环境来自不同的linux用户。
我能从virtualenv那里得到什么好处?到目前为止,我认为没有理由使用虚拟化。但也许我遗漏了什么。
Linux用户名的构建方式如下: project_name_S和S是阶段(dev、qual、prod、testing)。每个阶段可以在不同的主机上。
更新:
在提出这个问题三年多后:我现在使用的是虚拟环境。用户环境是一辆马车。也许现在它得到了更好的支持。但是没有什么可以阻止您在$HOME中创建一个虚拟环境:-)
发布于 2012-02-23 10:16:57
创建一个虚拟用户比创建一个新用户更快、更容易。我不打算换到现有的项目,而是考虑新的项目。
发布于 2012-02-23 10:25:38
Virtualenv非常适合管理依赖关系。配置文件(或设置文件)对于管理环境之间的变量差异非常好。(例如db位置e.tc)
蟒蛇搭便车指南非常好,值得一读20分钟。http://docs.python-guide.org/en/latest/index.html
请参阅本节关于虚拟env的内容。
http://docs.python-guide.org/en/latest/dev/virtualenvs/
如果您只想使用不同的home或env模式变量,可以在运行python代码之前设置它。
PROD_MODE=PROD python example.py然后,example.py将像这样查找PROD_MODE变量。
import os
print os.environ['PROD_MODE']所以你需要一个虚拟的人吗?
我强烈建议这样做。这样,Django就可以工作了,并且已经导入了一些其他库(我也强烈建议使用pip),并且您的机器上的一切都在正常工作。您的路径已经设置,您的代码可以使用path和PYTHON_PATH解析成代码。非常出色!
现在,您将部署到另一台计算机(可能是aws、linux服务器或类似的计算机)上,或者是其他开发人员希望帮助您的项目编写代码。他们如何确保在那里的机器上的env设置与您的机器相同,以及如何确保您使用与您测试过的所有漂亮的新代码相同的env进行部署?一个虚拟者为你做这件事!您只需在新机器上移植或重新创建虚拟env,任何一切都可以像测试/构建的那样工作。
简而言之,虚拟env可以帮助您确保在发布/部署代码时不会头痛地记住所有的导入、安装和路径设置。
发布于 2012-02-23 10:25:00
在虚拟环境中,有些东西是用户或家庭计划没有得到的:
总的来说,我建议您重新访问virtualenv以进行下一个项目。
https://stackoverflow.com/questions/9410800
复制相似问题