使用virtualenv和pip的工作流程

Aja*_*dav 12 python django virtualenv

我已经在我的系统上安装了python2.6和django1.2.3(Ubuntu 10.x).
这是我用于大多数项目的设置.但对于某些项目,我需要沙盒环境,不同的django版本,一些额外的python模块,有时甚至是不同的python版本.

所以,我现在尝试使用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 
Run Code Online (Sandbox Code Playgroud)

min*_*ate 9

你想做:

virtualenv --python=/path/to/python/version --no-site-packages ENV_NAME
Run Code Online (Sandbox Code Playgroud)

例如:

virtualenv --python=/usr/bin/python2.6 --no-site-packages my_project_env
Run Code Online (Sandbox Code Playgroud)

如果您对项目执行此操作,则应该能够为每个项目单独配置.


Len*_*bro 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.
Run Code Online (Sandbox Code Playgroud)

然后我为每个版本安装我需要的东西.我开始安装Distribute:

wget http://nightly.ziade.org/distribute_setup.py
/opt/pythonxx/bin/python distribute_setup.py
Run Code Online (Sandbox Code Playgroud)

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

/opt/pythonxx/bin/easy_install pip
Run Code Online (Sandbox Code Playgroud)

和virtualenv:

/opt/pythonxx/bin/pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

(适用于Python 3的Virtualenv3或virtualenv5)

就是这样!如果我想使用Python 2.4制作virtualenv,我会:

/opt/python24/bin/virtualenv foobar
Run Code Online (Sandbox Code Playgroud)

和Python 2.7:

/opt/python27/bin/virtualenv foobar
Run Code Online (Sandbox Code Playgroud)

正在运行python

/opt/python24/bin/python
Run Code Online (Sandbox Code Playgroud)

等等.我从不在上面的Pythons中安装任何东西,除了这些模块和PIL(因为PIL很痛苦,但现在有Pillow,所以你也不必这样做).我使用zc.buildout和virtualenv来保持蟒蛇的清洁.