我正在看debian和virtualenv,我想知道人们会推荐什么目录结构。从我的阅读中看来,这似乎是一个好主意:
代码:
var/www/<projectname>/src
VIRTUALENV:
var/www/<projectname>/venv
有人可以做得更好,或者指出我正确的方向吗?
答案 0 :(得分:2)
在我们公司的每个用户的家里都有一个Projects目录,如:
/home/username/Projects
此目录包含所有当前项目,假设您要检查Foogram项目,它将位于:
/home/username/Projects/Foogram
virtualenv在项目文件夹中创建,作为 .venv 目录,因此以下目录包含virtualenv:
/home/username/Projects/Foogram/.venv
现在,您肯定希望使用DVCS(分布式版本控制系统),如Git或Mercurial。将venv和二进制文件放在DVCS下通常是一个坏主意,因此您应该添加规则以避免将 .venv 目录添加到存储库中。使用Mercurial,您可以通过编辑 .hgignore 文件来实现此目的。你可以这样做:
nano /home/username/Projects/Foogram/.hgignore
添加以下行:
.venv/*
这将忽略 .venv 目录及其中的所有内容。您可能还应该花时间将以下规则添加到 .hgignore :
*.pyc
*.*~
*.log
*.orig
这些规则将帮助您保持存储库的合理性。
答案 1 :(得分:1)
如果您打算做一个简单的项目,您建议的目录就可以了。对于大型或长期项目,您可能希望使用某种SCM工具,例如git或mercurial。如果您确实想使用SCM工具,最好将虚拟环境放在另一个目录中,这样它就不会包含在您的SCM存储库中。
将虚拟环境置于存储库中通常不需要answered here。 Python有一些方便的工具,比如pip来保存包列表,并轻松地将它们安装在另一个虚拟环境中。
使用pip freeze输出虚拟环境包
pip freeze > requirements.txt
从requirements.txt安装软件包
pip install -r requirements.txt
假设您使用git进行SCM,代码可以在
中/home/jimmy/git/<projectname>
虚拟环境可以位于
/home/jimmy/venv/<projectname>