Рабочий процесс с использованием virtualenv и pip - PullRequest
12 голосов
/ 14 января 2011

В моей системе уже установлены 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 

Ответы [ 3 ]

9 голосов
/ 14 января 2011

Вы хотите сделать:

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

Например:

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

Если вы будете следовать этим указаниям для своих проектов, у вас должна быть возможность иметь отдельную конфигурацию для каждого.

5 голосов
/ 14 января 2011

Я установил каждую нужную мне версию 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, которому нужен дистрибутив_setup3.py) Затем я могу установить pip

/opt/pythonxx/bin/easy_install pip

И virtualenv:

/opt/pythonxx/bin/pip install virtualenv

(Virtualenv3 или virtualenv5 для Python 3)

И все!Если я хочу сделать virtualenv с использованием Python 2.4, я делаю:

/opt/python24/bin/virtualenv foobar

И Python 2.7:

/opt/python27/bin/virtualenv foobar

Запуск Python просто

/opt/python24/bin/python

И т.д.,Я никогда не устанавливаю что-либо в вышеупомянутых Питонах, кроме этих модулей и PIL (потому что PIL - боль, но теперь есть Подушка, так что вам также не нужно это делать).Я использую zc.buildout и virtualenv для поддержания чистоты питонов.

1 голос
/ 14 января 2011

Вы можете использовать virtualenv --no-site-packages ENVNAME, и это гарантирует, что Django по умолчанию в вашей системе Python не будет включен в вашу новую среду.

Для различных версий Python вы можете следовать этим инструкциям из сообщения superuser.com .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...