如果您经常只有几个项目,那么没有什么可以阻止您为每个项目创建一个新的virtualenv,并将您的软件包放在其中:/foobar
/bin
{activate, activate.py, easy_install, python}
/include
{python2.6/...}
/lib
{python2.6/...}
/mypackage1
__init__.py
/mypackage2
__init__.py
这种方法的优点是,您始终可以确保找到属于项目内部的激活脚本。$ cd /foobar
$ source bin/activate
$ python
>>> import mypackage1
>>>
如果你决定变得更有条理一些,你应该考虑把所有的virtualenv放在一个文件夹中,并根据你正在进行的项目命名它们。/virtualenvs
/foobar
/bin
{activate, activate.py, easy_install, python}
/include
{python2.6/...}
/lib
{python2.6/...}
/foobar
/mypackage1
__init__.py
/mypackage2
__init__.py
这样,当出现问题时,您总是可以重新开始使用一个新的virtualenv,并且您的项目文件保持安全。
另一个优点是,您的几个项目可以使用相同的virtualenv,因此,如果您有很多依赖项,则不必一遍又一遍地进行相同的安装。$ cd /foobar
$ source ../virtualenvs/foobar/bin/activate
$ python
>>> import mypackage2
>>>
对于经常需要设置和删除virtualenvs的用户来说,查看virtualenvwrapper是有意义的。http://pypi.python.org/pypi/virtualenvwrapper
使用virtualenvwrapper,您可以* create and delete virtual environments
* organize virtual environments in a central place
* easily switch between environments
在“foo”和“bar”项目中工作时,您不必再担心virtualenv在哪里:/foo
/mypackage1
__init__.py
/bar
/mypackage2
__init__.py
这就是您开始处理项目“foo”的方式:$ cd foo
$ workon
bar
foo
$ workon foo
(foo)$ python
>>> import mypackage1
>>>
然后切换到项目“bar”非常简单:$ cd ../bar
$ workon bar
(bar)$ python
>>> import mypackage2
>>>
很整洁,不是吗?