Virtualenv和debian中的代码位置

时间:2014-03-02 21:11:55

标签: python debian virtualenv

我正在看debian和virtualenv,我想知道人们会推荐什么目录结构。从我的阅读中看来,这似乎是一个好主意:

代码:

var/www/<projectname>/src

VIRTUALENV:

var/www/<projectname>/venv

有人可以做得更好,或者指出我正确的方向吗?

2 个答案:

答案 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

使用pip install

从requirements.txt安装软件包
pip install -r requirements.txt

建议

假设您使用git进行SCM,代码可以在

/home/jimmy/git/<projectname>

虚拟环境可以位于

/home/jimmy/venv/<projectname>