PiP - система управления пакетами в Python. PiP используется для установки сторонних библиотек (NumPy, SciPy и т.д.).
Virtualenv - инструмент для создания отдельного виртуального окружения. Зачем нужно окружение? По умолчанию PiP устанавливает проекты глобально (на уровне юзера), т.е. после установки пакеты видны всем python-скриптам, запускаемым от вашего имени. Если разные проекты требуют разных версий библиотек, то могут возникнуть проблемы. Virtualenv позволяет создать изолированное окружение с изолированным набором пакетов.
В каталоге проекта выполнить команду:
virtualenv -p python3 --prompt="AmazingApp" venv
# Если нужна недефолтная версия Python:
virtualenv -p python3.9 --prompt="AmazingApp" venv
# Если нужно использовать установленные в систему (напр. через apt) пакеты:
virtualenv -p python3.9 --system-site-packages --prompt="AmazingApp" venv
Значение параметров:
--no-site-packages
- для полной изоляции питоновский пакетов от системных. Созданное виртуальное окружение не будет использовать пакеты, установленные через pip без активации виртуального окружения. Если нужен доступ к системным пакетом, то нужно использовать опцию--system-site-packages
.-p python3
- версия питона. Если не указывать эту опцию, то будет использована версия Python “по умолчанию”. можно также указать минорную версию, напримерpython3.5
.--prompt="AmazingApp"
- название проектаvenv
- папка для Virtualenv в проекте; там будут хранится служебные файлы виртуального окружения и туда будут устанавливаться все пакеты.
В каталоге проекта выполнить команду:
source venv/bin/activate
Если venv активирован, то в терминале автоматически появится префикс (venv) перед командой (по крайней мере, на Linux/MacOS). Пример:
(AmazingApp) nik@nik-pc:/<path_to_project_dir>$
Выход из виртуального окружения:
deactivate
Установка
Устанавливать пакеты можно либо по одному:
pip install pymongo
Либо через файл requirements.txt, где прописаны либы:
pip install -r requirements.txt
Пример содержимого requirements.txt:
pymongo==3.0.2
tornado==4.0.1
Версии пакетов (==3.0.2
и т.д.) являются опциональными и их можно не указывать.
Удаление
pip uninstall pymongo
Обновление
pip install --upgrade numpy
Просмотр
Просмотр установленных пакетов:
pip freeze