С Python Virtual Environment — virtualenv проекты можно разрабатывать независимо, без вмешательства различных версий пакетов.

Опубликовано 2018/09/02

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

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

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

1. Установите виртуальную среду Python

$ pip3 install virtualenv

2. Создайте виртуальную среду

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

$ python --version

и

$ which python

Вывод — это путь, по которому установлен ваш python. Например, мой питон установлен по адресу:

/usr/local/opt/python/libexec/bin/python

Перейдите в каталог нашего проекта, введите

$ virtualenv -p /usr/local/opt/python/libexec/bin/python env

где «env» — это самоопределяемое имя виртуальной среды.

На данный момент мы инициировали виртуальную среду. Давайте активируем его с помощью

$ source env/bin/activate

Теперь терминал имеет префикс имени активированной виртуальной среды, и он должен выглядеть так

(env) I-Nos-MacBook-Pro:myProject ino$

Если отображается (env)”, это означает, что мы вошли в виртуальную среду. Теперь мы можем устанавливать любые пакеты, которые захотим, не загрязняя систему или другие проекты.

Чтобы покинуть текущую виртуальную среду, введите

$ deactivate

3. Скопируйте виртуальную среду из одной в другую

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

Чтобы создать список, активируйте существующую виртуальную среду и введите

$ pip3 freeze > packageList.txt

Деактивировать текущую виртуальную среду. Скопируйте файл packageList.txt в каталог нового проекта, в который мы хотим установить пакеты. Активируйте новую виртуальную среду и введите

$ pip3 install -r packageList.txt

4. Запустите Jupyter Notebook в виртуальной среде, выбрав «Ядро».

Запуск Jupyter Notebook во время активации виртуальной среды не означает, что мы входим в соответствующую виртуальную среду. Вместо этого мы должны создать новое ядро, содержащее все пакеты предпочтительной виртуальной среды, и переключиться на это ядро ​​в Jupyter Notebook.

Для этого сначала активируйте виртуальную среду и установите Jupyter и ipykernel с помощью

$ pip3 install jupyter
$ pip3 install ipykernel

Установите текущую виртуальную среду на новое ядро,

$ python3 -m ipykernel install --user --name yourEnvName --display-name "yourEnvName"

Терминал запросит расположение ядра для справки. Например, мои ядра хранятся по адресу: «/Users/ino/Library/Jupyter/kernels/». Войдите в папку ядра и откройте kernel.json. Мы можем проверить, как ядро ​​обращается к нашей среде.

Запустите Jupyter Notebook,

$ jupyter notebook

Теперь мы можем либо создать блокнот на основе предпочтительного ядра, либо переключиться на предпочтительное ядро ​​на существующих ноутбуках.

Резюме

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