Python

Учебник по Python Virtualenv

Учебник по Python Virtualenv
Головные боли, связанные с управлением зависимостями, обычны для разработчиков. Одно ошибочное обновление требует часов исследования, чтобы исправить.  Часто несколько приложений перекрываются требованиями зависимости библиотеки.  Это может привести к тому, что двум приложениям, работающим в одной среде, потребуются две версии одной и той же библиотеки.  Конфликты такого типа могут вызвать ряд проблем как при разработке, так и при производстве.Войдите в Virtualenv.  Virtualenv - это инструмент, который создает разрозненные зависимости.  Он позволяет развертывать приложения в единой среде с изолированными зависимостями. Docker использует аналогичную стратегию на уровне ОС. Virtualenv разделяет только на уровне Python и библиотеки, то есть исполняемый файл Python и библиотеки среды уникальны для этой виртуальной среды.  Таким образом, вместо использования библиотек, установленных на уровне среды ОС, вы можете разделить версии и библиотеки Python на разрозненные виртуальные среды.  Это позволяет развертывать несколько приложений в одной среде ОС с разными версиями одних и тех же зависимостей.

Установить Virtualenv

Установка Virtualenv проста. Используя pip, вы можете выполнить следующую команду из терминала.

$ pip установить virtualenv

В качестве альтернативы, если вы используете Anaconda, вам нужно будет вместо этого использовать следующую команду терминала.

$ conda установить virtualenv

Вывод вашего терминала должен выглядеть примерно так, как показано ниже.

Bradleys-Mini: ~ BradleyPatton $ pip install virtualenv
Сбор virtualenv
Скачивание virtualenv-15.1.0-py2.py3-none-any.whl (1.8 МБ)
100% | ███████████████████████████████ | 1.8 МБ 267 КБ / с
Установка собранных пакетов: virtualenv
Успешно установлен virtualenv-15.1.0
Брэдли-Мини: ~ БрэдлиПэттон $

Создать среду

В Virtualenv есть одна основная команда. Следующая строка, выполняемая с терминала, создаст новую «изолированную» или виртуальную среду Python в каталоге Tutorial.

$ virtualenv Учебник

Вы должны получить некоторый вывод терминала, как показано ниже, после выполнения.

Bradleys-Mini: пакеты сайтов BradleyPatton $ virtualenv Учебное пособие
Перезапись / Пользователи / BradleyPatton / anaconda / lib / python2.7 / сайт-
пакеты / Учебник / lib / python2.7 / префикс ориг.txt с новым содержанием
Новый исполняемый файл python в / Users / BradleyPatton / anaconda / lib / python2.7 / сайт-
пакеты / Учебник / bin / python
копирование / Пользователи / BradleyPatton / anaconda / bin / python =>
/ Пользователи / BradleyPatton / anaconda / lib / python2.7 / сайты-пакеты / Учебник / bin / python
копирование / Пользователи / BradleyPatton / anaconda / bin /… / lib / libpython2.7.dylib =>
/ Пользователи / BradleyPatton / anaconda / lib / python2.7 / сайты-пакеты / Учебник / библиотека /
libpython2.7.Дилиб
Установка setuptools, pip, wheel… готово.

Команда virtualenv создаст структуру каталогов, включая двоичный файл, библиотеку и каталог include для новой виртуальной среды, которая была создана.

Bradleys-Mini: Учебник BradleyPatton $ ls
bin lib
включить pip-selfcheck.json
Bradleys-Mini: Учебник BradleyPatton $

/ bin содержит ваши исполняемые файлы, в первую очередь Python и pip.

Брэдли-Мини: бин Брэдли Паттон $ ls
активировать easy_install-2.7 конфигурация Python
активировать.csh pip python2
активировать.рыба pip2 python2.7
activate_this.py pip2.7 колесо
easy_install python
Брэдли-Мини: бин Брэдли Паттон $

В / lib а также /включать каталоги включают вспомогательные файлы для Python и приложения, которое будет разработано.

Активировать Virtualenv

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

в / bin директории есть скрипт активации BASH. Вы можете выполнить, используя нижеприведенный.

$ ./ активировать

Если вы заметите из моих попыток ниже, мне пришлось изменить разрешение файла на выполнение. Я использовал CHMOD 700 активировать команда для обновления разрешений. Вам также может потребоваться выполнить это обновление перед запуском скрипта активации.

Брэдли-Мини: бин Брэдли Паттон $ ls
активировать easy_install-2.7 конфигурация Python
активировать.csh pip python2
активировать.рыба pip2 python2.7
activate_this.py pip2.7 колесо
easy_install python
Брэдли-Мини: бин Брэдли Паттон $ ./ активировать
-bash: ./ activate: В доступе отказано
Брэдли-Мини: бин Брэдли Паттон $ sudo ./ активировать
Пароль:
sudo: ./ activate: команда не найдена
Bradleys-Mini: bin BradleyPatton $ chmod 700 активировать
Брэдли-Мини: бин Брэдли Паттон $ ./ активировать
Брэдли-Мини: бин Брэдли Паттон $

Деактивировать Virtualenv

Чтобы отменить изменения переменной среды, сделанные с помощью активации, выполните следующую команду из терминала. Это отменит изменения вашего пути, как будто их никогда не было. Это так просто.

$ деактивировать

Удаление окружения

Удалить виртуальную среду так же просто, как rm. Просто введите следующее, чтобы удалить каталог и рекурсивно его содержимое.

$ rm -r Учебное пособие по удалению

Что теперь

Что ж, теперь вам нужно установить свои библиотеки и приложение в новую виртуальную среду.  Pip упрощает поиск ваших библиотек.

Я не буду вдаваться в тонкости pip, некоторые из которых можно найти здесь, но я продемонстрирую установку одного pip.

$ pip install pandas (Учебное пособие) Bradleys-Mini: bin BradleyPatton $ pip install pandas
Сбор панд
Использование кешированных pandas-0.22.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9
_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.пока
Сбор numpy> = 1.9.0 (от панд)
Использование кешированного numpy-1.14.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9
_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.пока
Сбор python-dateutil (из панд)
Использование кешированного python_dateutil-2.6.1-py2.py3-none-any.пока
Собираем pytz> = 2011k (от панд)
Использование кешированного pytz-2017.3-py2.py3-none-any.пока
Собираем шесть> = 1.5 (из python-dateutil-> pandas)
Использование cached six-1.11.0-py2.py3-none-any.пока
Установка собранных пакетов: numpy, six, python-dateutil, pytz, pandas
Успешно установлен numpy-1.14.0 панд-0.22.0
Python-dateutil-2.6.1 pytz-2017.3 шесть-1.11.0
(Учебное пособие) Bradleys-Mini: bin BradleyPatton $

Следующая команда откроет командную строку интерпретатора Python.  Я импортирую нашу новую библиотеку pandas и проверю версию. Версия 19 - это моя глобальная версия pandas, но, как вы видите из вывода терминала, версия, используемая в виртуальной среде нашего учебника, равна 22.

$ python (Учебное пособие) Bradleys-Mini: bin BradleyPatton $ python
Python 2.7.13 | Continuum Analytics, Inc.| (по умолчанию, 20 декабря 2016 г., 23:05:08)
[GCC 4.2.1 Совместимый Apple LLVM 6.0 (лязг-600.0.57)] на Дарвине
Введите «помощь», «авторские права», «кредиты» или «лицензия» для получения дополнительной информации.
Анаконда представлена ​​вам компанией Continuum Analytics.
Пожалуйста, проверьте: http: // континуум.io / спасибо и https: // anaconda.org
>>> импорт панд
>>> панды.__версия__
u'0.22.0 '
>>>

Это руководство должно помочь вам начать работу с Virtualenv.  Я добавил ссылку на страницу Virtualenv, которая может помочь с глубокой конфигурацией с использованием параметров и настроек конфигурации, которые могут использоваться в особых обстоятельствах.

Рекомендации

https: // virtualenv.Pypa.io / en / стабильный

Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...
Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...