Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Pundle — bundler для python

pundle 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 онлайн игр. Есть игрушки на любой вкус, заходите, выбирайте категорию, игру и наслаждайтесь сколько угодно. Игр действительно очень много, так что вам точно хватит на долго.