«Пип-т» — простая альтернатива виртуальное окружение

«Пип-т» — простая альтернатива виртуальное окружение

391
ПОДЕЛИТЬСЯ

Предлагаем простую кандидатуру: МНОГАБУКАФ. Просто установить и изолировать зависимостей проекта, виртуальное свита нередко очень тяжелое решение.
добавить ./.Пип в переменную окружения PYTHONPATH,
устанавливать пакеты локально с помощью PIP установить-т .Пип,
чтоб запустить Python в папке проекта.

Какая версия пожелать сейчас? Каждое приложение зависит от разных библиотек, и обеспечить его правильное поведение, лучше установить в technocity правильные версии библиотек. Установка зависимостей является нужной процедурой фактически для хоть какого приложения в Python.
Раз файл на месте, просто установить зависимости:
$ Пип установить-р requirements.txt

До сих пор так отлично. По умолчанию, Пип устанавливает библиотеки глобально в папке интерпретатора Python. Этот файл содержит перечень всех библиотек для проекта, с номерами версий. Переключение меж A и B глобальная переустановка каждые х раз, что долго и неловко. К примеру, проект работает с библиотекой х лишь версия 0.1, а проект Б — 0.2. Всераспространенной практикой является включение в проект файла requirements.txt. Было бы плохо, раз бы у вас есть два либо наиболее проектов с конфликтующими зависимостями. Это значит, что команда $ Пип установить x==0.2 будет установить библиотеку x версии 0.2 для всех проектов и приведет к перезаписи версии 0.1, раз, который уже установлен.
Так либо по другому, некие юзеры виртуальное свита кажется очень сложным. Остальных решений: Анаконда сред и pyvenv из обычной библиотеки языка Python (3.3+). Полуостров в солнце
Безупречное решение это частая неувязка виртуальных сред. В зависимости от каждого проекта разделены друг от друга. Потому, есть пакеты такие virtualenvwrapper и autoenv которые расширяют функциональность виртуальное свита, чтоб сделать их проще в использовании. Рамки виртуальное свита делает изолированной среды Python.
Все эти огромные средства, но мы постоянно ощущали, что они дают достаточно томные и сложные решения обычных, в общем-то, задачки.
В мир JavaScript нпм и Бауэр предложить обычный, надежный и мощнейший пакет управления, который, кажется, не быть довольно в Python. Скачал библиотеки для определенного проекта. Это автоматом дозволяет избежать заморочек, упомянутых выше. Ключ в том, что они скачиваете правильную версию правильную библиотеку и положить ее в специальную папку снутри проекта.
Незапятнанная мистика
Оказывается, существует обычный метод повторить подход нпм и Бауэр в Python:

добавить ./.Пип в PYTHONPATH,
в использовании Пип с помощью функции-T .типун для локальной установки пакетов.
Запамятовать о источнике ОКР/Бен/активировать и деактивировать! Потом просто запустите код из папки проекта.
Трюк работает поэтому что ./.Пип — относительный путь. Запустите Python в ~/дев/project_b — включают в ~/дев/project_b/.Пип. В итоге, когда вы запустите Python из ~/дев/project_a, в папку ~/дев/project_a/.Пип включен в список библиотечных папок для данного экземпляра питона. Техника работает на всех фаворитных платформ: Linux, Mac и Windows.
Имя папки .Пип, естественно, может быть все что угодно. Но .Пип быстро печатать, и многоточия в начале делает папки сокрытыми в Linux и Mac. Кому-то больше нравится pip_components либо библиотеки.
Шаг 1: Установить PYTHONPATH

В зависимости от платформы для вас, может быть, придется заменить ~/.bash_profile и ~/.bashrc и. МАК/ЛИНУКС
Эта команда установит PYTHONPATH вечно эталон для терминальных сессий:
$ Эхо-экспорт PYTHONPATH=»./.Пип:$PYTHONPATH»‘ >> ~/.bash_profile

Опосля этого перезапустить терминал либо выполнить $ источник .bash_profile, что PYTHONPATH загружается в активной сессии.

— прим. Пер.). Вы сможете установить переменную для юзера и для всей системы. Добавьте либо отредактируйте переменную PYTHONPATH: ..PIP либо ..типун;(…иными способами…). Окна
Откройте Панель управления и выберите система и сохранность → система → поменять опции → дополнительно → переменные среды (у меня британская версия, потому не стоит переводить наименования разделов, чтоб случаем не запутать читателей.

ВРЕМЕННЫЙ PYTHONPATH
Раз вы предпочитаете установить PYTHONPATH лишь для текущего сеанса, выполните $ экспорт PYTHONPATH=./.Пип в Mac и Linux либо > установить PYTHONPATH=..Пип в Windows.
В Mac и Linux вы сможете даже установить PYTHONPATH лишь во время сессия Python: $ PYTHONPATH=./.Пип питона main.py.

Чтоб сделать это, используйте-T либо —цели:
$ компакт project_a
project_a$ Пип установить запросов==2.7.0-т .Пип

project_a$ питон
>>> запросы на импорт
>>> запросы.__версия__
‘2.7.0’

Сейчас то же самое в другом проекте с иной версией:
$ компакт project_b
project_b$ Пип установить запросов==2.6.0-т .Пип

project_b$ питон
>>> запросы на импорт
>>> запросы.__версия__
‘2.6.0’

Файл requirements.txt все работает так же:
$ Пип установить-р requirements.txt -т .Пип Шаг 2: Установите пакеты с помощью PIP-т
Сейчас, когда PYTHONPATH не установлен, осталось лишь установить пакеты в необходимое место с помощью PIP.
Потенциальные засады
Различных интерпретаторов Python
Вы сможете просто запустить програмку в иной интерпретатор Python:
$ /путь/к/питон main.py

Но, есть неувязка с переключением меж Python 2 и 3, Раз вы используете пакеты, компилировать начальный код во время установки с помощью 2to3. В этих пакетах нет общей базы кодов, установка кода генерируется соответственно активная версия Python.
В этом случае, сделайте папку типа .pip3 и добавить его в PYTHONPATH начала, когда я запустить код с Python 3.
помощью easy_install
Раз у вас есть пакеты, установленные в глобальном масштабе через помощью easy_install, столкнется с неувязкой: код дописывает путь к пакетам в начале каталога sys.путь, потому они имеют ценность над пакетами .Пип.
Решение заключается в том, чтоб избавиться от пакетов, установленных в глобальном масштабе через помощью easy_install.
Раз ./.Пип будет иными методами, может быть, будет нужно поначалу очистить систему от глобального помощью easy_install-пакеты. habrahabr.ru Чтоб проверить, что ничто не мешает применять .Пип, выполнить команду Import sys;в таблице sys.путь в Python.