Работа с независимыми Python окружениями
Уверен что вам нравится работать на удобном рабочем месте, где все под рукой и в порядке.
Чтобы не тратить часы на утомительные поиски что не так в вашем Python окружении, и как починить библиотеку переставшую работать потому что вы поставили другую библиотеку, требуемую в каком-то из ваших проектов, есть простой способ, как поддерживать порядок.
Теперь, начиная с Python 3.6 это стало еще проще. Раньше вам требовалось установить virtualenv. Но теперь в лучших традициях python “батарейки в комплекте”!
python3 -m venv <venv folder name>
Для Windows
python -m venv <venv folder name>
Эта команда создаст в <venv folder name>
“виртуальное окружение” где будут все используемые в этом
окружении библиотеки.
Чтобы “активировать” его (обратите внимание на .
это сокращение для source)
. <venv folder name>/bin/activate
Для Windows
<venv folder name>\Scripts\activate.bat
После активации будут использоваться Python библиотеки из из этого окружения. И когда вы что-то
устанавливаете с помощью pip install
это меняет только это окружение и никак не испортит другие
окружения или ваши глобальные настройки системы.
Чтобы “выйти” из окружения
deactivate
Чтобы вам было еще проще этим пользоваться я написал скрипт activate.sh
:
Он работает только в Linux и MacOS (обратите внимание на .
)
. ./acivate.sh
Скрипт создаст окружение если оно еще не создано. И установит вспе библиотеки перечисленные в файле
requirements.txt
. Если окружение уже было создано ранее то скрипт не будет его создавать
повторно (см проверку на строке 25).
После этого скрипт активирует окружение (строка 32).
В переменной PYTHON
(строка 7) в скрипте вы можете указать необходимую вам версию Python.
При желении можно изменить и имя каталога VENV_FOLDER
(строка 6).
Строки 14..22 проверяют что вы правильно вызвали скрипт с помощью source (или сокращения .
).
Если у вас возникнет ошибка .. 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1
скорее всего это означает что модуль ensurepip
не установлен для нужной вам версии Python
(переменная PYTHON
) и вы должны установить ее. Например для python3.7 в Ubuntu:
sudo apt-get install python3.7-venv