2

所以,我想今年开始使用 virtualenv。我喜欢 no-site-packages 选项,这很好。但是我想知道如何将某些软件包安装到每个 virtualenv 中。例如,假设我想将 django 安装到每个 virtualenv 中……这可能吗,如果可以,怎么做?buildout 能解决这个问题吗?


好吧,与其说是 django,不如说是 django 应用程序...我不介意在每个 virtualenv 中安装一个 django 版本...我只是想知道是否有一些“无站点包”的中间选项

4

5 回答 5

6

我知道你从哪里来的无站点选项。我想使用 pip freeze 来生成需求列表,并且不希望站点包中有很多多余的东西。我还需要使用多个版本的 django,因为我有尚未升级的遗留项目(一些旧的 svn 结帐(pre1.0)、一些 1.0 和一些新的 svn 结帐)。在全局站点包中安装 Django 并不是一个真正的选择。

相反,我有一个 django 文件夹,其中包含发布和几个不同的 svn 版本,并且只是符号链接到本地​​站点包中的适当版本。为了便于使用,我链接到与环境相同级别的本地站点包,然后链接到适当的 django 目录和我需要的任何其他“系统”样式包(通常只是 PIL)。所以:

$ virtualenv pyenv
$ ln -s ./pyenv/lib/python2.5/site-packages ./installed
$ ln -s /usr/lib/python2.5/site-packages/PIL ./installed
$ ln -s /opt/django/django1.0svn/trunk/django ./installed

现在以下工作:

$ source pyenv/bin/activate
$ python
> import django
> import PIL
于 2009-01-27T00:35:43.793 回答
2

如果你想让 django 安装在每个 virtualenv 上,你还不如将它安装在 site-packages 目录中?只是一个想法。

于 2009-01-12T04:34:25.367 回答
1

我建议使用virtualenv'引导支持。这允许您在创建 virtualenv 后执行任意 Python,例如安装新包。

于 2009-01-14T02:23:50.560 回答
0

另一种选择(我用过的)是在创建虚拟环境后easy_install Django。这很容易编写脚本。您付出的代价是在您的每个虚拟环境中等待 Django 安装。

不过,我和 Toby 在一起:除非有令人信服的理由你必须在每个虚拟环境中拥有一个单独的 Django 副本,否则你应该考虑将它安装在你的主要 Python 区域,并允许每个虚拟环境从那里使用它.

于 2009-01-12T18:18:48.777 回答
0

我想看看这个项目:

http://www.stereoplex.com/two-voices/fez-djangoskel-django-projects-and-apps-as-eggs

可能是我的答案......

于 2009-01-13T21:22:10.123 回答