使用virtualenv安装某些软件包

时间:2009-01-12 04:05:36

标签: python virtualenv buildout

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


嗯,这不是django,更像是django应用程序......我不介意在每个virtualenv中安装一个版本的django ...我只是想知道是否有一些'no-site-packages'的中间选项

5 个答案:

答案 0 :(得分:6)

我知道你在哪里使用no-sites-option。我想使用pip freeze来生成需求列表,并且不希望在站点包中有很多额外的错误。我还需要使用多个版本的django,因为我有遗留项目我没有升级(一些旧的svn checkout(pre1.0),一些1.0,以及一些新的svn checkout)。在全局站点包中安装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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

我建议使用virtualenv的{​​{3}}支持。这允许您在创建virtualenv之后执行任意Python,例如安装新包。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

我想查看这个项目:

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

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