Pundle — bundler для python
Примеры Python » Python для начинающих изучаем python, программирование на python, язык программирования python
Начнем с упоминания иного очень хорошего проекта – pyenv. Это портированный под python rbenv, с помощью которого мы можем устанавливать необходимые версии python в пользовательскую папку в глубь ~/.pyenv, и соответственно ручной активации необходимой версии, или с помощью файла .pyenv-version (есть в папке проекта), что будет боле правильнее.
В духе прекрасной традиции обмениваться хорошими задумками с ruby-сообщество было решено портировать Bundle и дать ему имя Pundle.
Вся задумка сводится к тому, чтобы не нужно было создавать по директории для каждой конкретной комбинации версий пакетов, подобно тому как это в virtualenv, а сбрасывать все пакеты в определенную директорию, к примеру .pundlerdir/python-version-variant/package-name-2.3.4, затем при запуске проекта, руководствуясь данными из frozen.txt, запускать необходимые версии пакетов.
Если применять такой метод к пакетам, которые любят пользоваться всяческими хитростями, раскладывая .pth файлы в site-packages, то все получится довольно коряво. А вот под нормальные варианты это великолепно подходит. Радует, что большинство – это именно нормальные, а для хитрых тоже что-то можно придумать.
Что ж, начнем баловаться:
> brew install pyenv
> pyenv install 3.4.1
> pyenv shell 3.4.1
> python --version
Python 3.4.1
Превосходно, интерпретатор нужной версии! Дабы дать больше новизны создаем файлик requirements.txt и пишем в нем:
trafaret > 0.5
nomad > 1.8
Пришло время запустить pundle:
> pip install pundle
...
> python -m pundle
Install some packages
... буквы, опять буквы, снова символы, медитация
В ходе операции мы поставили пакеты, у нас теперь есть файл frozen.txt
nomad==1.9 # nomad << requirements file
opster==4.1 # opster>=4.0 << nomad << requirements file
termcolor==1.1.0 # termcolor << nomad << requirements file
trafaret==0.5.3 # trafaret << requirements file
Имеет два нужных нам пакета, а в добавок еще парочку в виде зависимостей nomad.
Теперь у нас две альтернативы – первый способ – в файле, где планируется стартовать проект вручную импортируем pundle и просим, чтобы он активировал необходимые для него версии пакетов.
Мне же больше нравится команда fixate, добавляющая активацию необходимых версий в usercustomize.py:
python -m pundle fixate
Теперь можно запустить интерпретатор и в автоматическом режиме получить доступ к пакетам необходимых версий:
python
>>> import nomad
>>> nomad.__version__
'1.9'
Pundle – github.com/Deepwalker/pundler
Pyenv - github.com/yyuu/pyenv
Надоело программировать и мучить Python? Тогда как насчет играть на igri3D.ru? На сайте очень много 3D онлайн игр. Есть игрушки на любой вкус, заходите, выбирайте категорию, игру и наслаждайтесь сколько угодно. Игр действительно очень много, так что вам точно хватит на долго.