Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Администратор версий python

Anna | 16.06.2014 | нет комментариев

Иногда пригодно удерживать несколько версий python на одной машине. Возможен для разработки 2-х планов нам нужна вторая и третья ветка python. Либо вы поддерживаете план тот, что использует ветхую версию python.

Традиционно для этого мы используем виртуальное окружение virtualenv либо же обертку для негоvirtualenvwrapper. Об этом я рассказывать не буду, так как есть теснее много сходственных статей, да и в документациях к самим утилитам все дюже отлично объяснено. Довольно только забить virtualenv либоvirtualenvwrapper в поисковик.
Но в дополнение к ним я хочу рассказать в этой статье про администратор версий python. Кому любознательно умоляю под кат.

Что бы применять несколько версий python, дозволено установить их вручную либо воспользоваться администратор версий. Таких есть два: pythonbrew(тот, что больше не прогрессирует) и pyenv. Оба администратора не поддерживают windows(pythonbrewpyenv) так что питонистам пишущим на этой платформе, придется пока разруливать все руками, либо сделать свою утилиту для смены путей до необходимых версий. Кто как справляется с данной обстановкой можете оставлять в комментариях.
Так как pythonbrew больше не поддерживается в этой статье он рассмотрен не будет.

P.S. В статье приведены примеры проверенные для OS Ubuntu 12.04. При попытке повторить их, делайте поправки касательно своего дистрибутива.

Ручной метод

Для того что бы трудиться с несколькими версиями питона, дозволено установить нужные версии в указанный префикс. Скажем что бы не мудрить с правами, установим добавочно 2 версии python(2.7.6 и 3.3.2) в директорию пользователю:
2.7.6

$ mkdir -p ~/python/src/ && cd ~/python/src/
$ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
$ tar -xf ~/python/src/Python-2.7.6.tar.xz && cd ./Python-2.7.6
$ ./configure --prefix=$HOME/python/2.7.6/
$ make && make install

для 3.3.2 делаем схожие операции:

$ wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz ~/python/src/
$ tar -xf ~/python/src/Python-3.3.2.tar.xz && cd ./Python-3.3.2
$ ./configure --prefix=$HOME/python/3.3.2/
$ make && make install

Сейчас дозволено сделать виртуальное окружение что бы применять эти версии:

$ virtualenv -p ~/python/2.7.6/bin/python env && . ./env/bin/activate

либо через virtualenvwrapper:

$ mkvirtualenv -p ~/python/2.7.6/bin/python evnwrapper

Собственно на основании такого метода описана статья по созданию мультихостинга.
Дальше если вам нужно применять какую-то из этих версий как python по умолчанию, то вам нужно добавить в переменную окружения путь до интерпретатора python.

$ echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc

Соответственно взамен bashrc вы ставите bash_profile, zshrc, kshrc, profile в зависимости от вашей командной оболочки.

$ . ~/.bashrc

И по необходимости дозволено установить pip, заранее установив setuptools.

$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -O - | python

Фух, ну как бы бы все. А сейчас о том как дозволено сделать это проще использую администратор версий python.

PyEnv

В всеобщем если вы довольно ленивы, то дозволено не делать каждого того атья на прогре. Если вы огромнее привыкли к virtualenv либо ее обертке virtualenvwrapper то здесь есть два варианта: либо поставить плагин кpyenv, либо применять их к той версии python c которой вы трудитесь. Соответственно если предпочесть 1-й вариант, то сделанные вами окружения будут добавлены к вашим версиям python и доступны через команду:

$ pyenv versions

Добавить плагин легко, легко клонируем его из репозитория pyenv-virtualenv либо pyenv-virtualenvwrapper:

$ mkdir -p ~/.pyenv/plugins
$ git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ git clone git://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper

Пример применения дозволено посмотреть в документации для pyenv-virtualenv и pyenv-virtualenvwrapper.
Все, а дальше пользуйтесь, как вам привычнее.

Пример применения
$ pyenv versions
* system
  2.7.5
  3.3.2

$ mkdir -p ~/test_project/prj_for_2.7.5 && cd ~/test_project/prj_for_2.7.5
$ pyenv virtualenv 2.7.5 my-virtualenv-2.7.5
$ pyenv local my-virtualenv-2.7.5
$ pip install django==1.4
$ pip freeze
Django==1.4
wsgiref==0.1.2
$ python --version
Python 2.7.5

$ mkdir -p ~/test_project/test_project && cd ~/test_project/test_project
$ pyenv virtualenv 3.3.2 my-virtualenv-3.3.2
$ pyenv local my-virtualenv-3.3.2
$ pip install django==1.5
$ pip freeze
Django==1.5
$ python --version
Python 3.3.2

Сейчас находясь в директории плана дозволено запускать скрипт от требуемой версии python не прилагая никаких действий. pyenv создает в директории файл .python-version тот, что содержит в себе информацию о том какую версию python с каким окружение применять для данного плана.

Пригодные ссылки

github.com/utahta/pythonbrew
github.com/yyuu/pyenv
github.com/yyuu/pyenv-installer
github.com/yyuu/pyenv-virtualenv
github.com/yyuu/pyenv-virtualenvwrapper
docs.python.org/dev/library/venv.html
www.virtualenv.org/en/latest/
virtualenvwrapper.readthedocs.org/en/latest/

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB