Как использовать 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 и т.д.