2011-01-14 54 views
12

我的系统上安装了python2.6和django1.2.3(Ubuntu 10.x)。
这是我用于大部分项目的设置。但对于一些项目,我需要沙盒环境,不同的Django版本,一些额外的Python模块,有时甚至是不同的Python版本。使用virtualenv和pip的工作流程

所以,我现在想使用pip和virtualenv,但我无法更改python和django版本。我是否必须删除默认设置并将所有现有项目移至1 virtualenv。我能避免这种情况吗?即使我这样做,我怎么能指定一个不同版本的Python?如果我不得不删除旧的设置,我怎么做?我目前大部分的东西安装在/usr/local/lib/python2.6/dist-packages/,但我不确定是否还有其他地方安装了任何东西。

如果我有一个完全空白的设置只有Ubuntu,什么是理想的工作流程?这是一个吗?

Install python 
$ sudo apt-get install python-setuptools 
$ sudo apt-get install python-virtualenv 
$ sudo easy_install pip 
$ sudo pip install virtualenvwrapper 
+1

virtualenv将拯救你的生活 - 良好的呼叫。 – JohnO 2011-01-14 18:17:17

回答

9

你想做的事:

virtualenv --python=/path/to/python/version --no-site-packages ENV_NAME 

例如:

virtualenv --python=/usr/bin/python2.6 --no-site-packages my_project_env 

如果按照这个为你的项目,你应该能够对每一个单独的配置。

5

我已经安装了我需要的每个Python版本(即2.4,2.5,2.6,2.7,3.1以及3.2)。这总是最好的事情,所以你不要搞混Python系统。

我将它们安装在/ opt中。像这样(你首先需要一堆Ubuntu软件包):

./configure --prefix /opt/pythonxx 
make -j2; make install # j2 is a nice trick there for dualcores not everyone knows. 

然后我为每个版本安装我需要的东西。我开始安装分发:

wget http://nightly.ziade.org/distribute_setup.py 
/opt/pythonxx/bin/python distribute_setup.py 

(除Python 3里,谁需要distribute_setup3.py) 然后我可以安装PIP

/opt/pythonxx/bin/easy_install pip 

而且的virtualenv:

/opt/pythonxx/bin/pip install virtualenv 

(Virtualenv3或者virtualenv5 for Python 3)

就是这样!如果我想用Python 2.4制作一个virtualenv,我可以这样做:

/opt/python24/bin/virtualenv foobar 

和Python 2。7:

/opt/python27/bin/virtualenv foobar 

运行蟒蛇只是

/opt/python24/bin/python 

等等。我从来没有上述蟒蛇安装任何东西,除了这些模块,和PIL(因为PIL是一种痛苦,但现在有枕头,所以你不必这样做)。我使用zc.buildout和virtualenv来保持蟒蛇的清洁。

+0

我提出了一个问题来列出所有需要的软件包,因为每次我安装一个新的Ubuntu时,我总是会花半个小时。 :) http://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-sou – 2011-01-14 18:17:04