Как использовать Python virtualenv
Сценарий: я на Ubuntu 11, который поставляется с Python 2.7, я хочу запустить Mozilla JetPack, который поддерживает Python 2.5/2.6 и Google App Engine, который поддерживает только Python 2.5.
Прочтите, что не рекомендуется удалять Python 2.7, поскольку Ubuntu, возможно, использует его. Поэтому правильный способ - использовать virtualenv
. Но я совершенно потерял его. Я установил Python 2.5 в /usr/local/python25
после данного руководства
Я пробовал
[email protected]:/usr/local/python25/bin$ ./python --version
Python 2.5.5
[email protected]:/usr/local/python25/bin$ ./python virtualenv /works/tmp/test
./python: can't open file 'virtualenv': [Errno 2] No such file or directory
то работает ниже, но я буду использовать Python 2.7
[email protected]:/usr/local/python25/bin$ virtualenv /works/tmp/test
New python executable in /works/tmp/test/bin/python
Installing distribute.................................................................................................................................................................................done.
[email protected]:/usr/local/python25/bin$ cd /works/tmp/test/bin
[email protected]:/works/tmp/test/bin$ ls
activate activate_this.py easy_install easy_install-2.7 pip python
[email protected]:/works/tmp/test/bin$ ./python --version
Python 2.7.1+
Также, как я могу запустить Mozilla JetPack или Google App Engine с этой версией Python? Извините, я новичок в Python (и Linux/Ubuntu)
Ответы
Ответ 1
Структура:
- Первый cd до
/usr/local/python25/bin
- Загрузите setuptools для Python2.5 (setuptools-0.6c11-py2.5.egg)
- Установите его (
sh setuptools-0.6c11-py2.5.egg
).
- Теперь установите pip (
easy_install pip
).
- Установите
virtualenv
и virtualenvwrapper
с помощью pip (pip install v...
и т.д.).
- Настройте WORKON_HOME для обертки virtualenv для работы (
export WORKON_HOME = $HOME/.virtualenvs
). Вы можете использовать любой другой каталог, который вы хотите (а не только $HOME/.virtualenvs). Просто убедитесь, что используете полный путь.
- Теперь создайте virtualenv (
mkvirtualenv foobar
).
- Переключитесь на новый virtualenv (
workon foobar
).
- Теперь установите GAE, JetPack и все, что вы хотите, используя
pip install blah
Почему ваша установка не работает?
Похоже, вы не установили virtualenv для Python2.5. Следовательно, это не сработает.
[email protected]:/usr/local/python25/bin$ ./python virtualenv /works/tmp/test
Вы можете проверить, выполнив команду ls
в этом каталоге. Я подозреваю, что вы не найдете там virtualenv
.
Однако это сработало для вас.
[email protected]:/usr/local/python25/bin$ virtualenv /works/tmp/test
Потому что он использует файл virtualenv
для системного Python2.7 по умолчанию. Вы можете проверить which virtualenv
и открыть virtualenv
script. Вы увидите, что #! будет указывать на python по умолчанию системы.
Поэтому вам нужно установить easy_install и pip для Python 2.5, прежде чем вы сможете создать virtualenv для Python 2.5. Просто выполните шаги, описанные выше.
Ответ 2
Вам не нужно ничего делать за пределами виртуальной оболочки. Просто используйте флаг --python=python2.5
(еще раз посмотрите man-страницу для формы virtualenv). Неважно, с какой версией вы его устанавливаете, вам просто нужно выбрать правильный исполняемый файл для python в виртуальной среде.
например. mkvirtualenv --python=python2.5 --distribute python25
Если флаг python завершился с ошибкой, добавьте символическую ссылку (ln -s
) в python25 в ваш $PATH или используйте полное имя пути на флагове python.
Кроме того, по умолчанию для нескольких установок python для всех версий "altinstall" должен быть отдельный python и easy_install. Итак, например: python2.5
, easy_install-2.5
, python2.6
, easy_install-2.6
и т.д.