Управление виртуальными окружениями
Понимание виртуальных окружений
Виртуальные окружения представляют изолированные пространства выполнения Python, которые позволяют разработчикам создавать отдельные экосистемы зависимостей для разных проектов, предотвращая конфликты и обеспечивая воспроизводимость.
Рабочий процесс с виртуальными окружениями
graph TD
A[Create Virtual Environment] --> B[Activate Environment]
B --> C[Install Project Dependencies]
C --> D[Develop Project]
D --> E[Deactivate Environment]
Основные стратегии управления
1. Создание виртуальных окружений
Использование venv
## Create virtual environment
python3 -m venv project_env
## Activate environment
source project_env/bin/activate
## Deactivate environment
deactivate
Использование virtualenv
## Install virtualenv
pip3 install virtualenv
## Create environment
virtualenv -p python3 project_env
## Activate environment
source project_env/bin/activate
Управление зависимостями
Лучшие практики при использовании файла requirements
Действие |
Команда |
Описание |
Генерация файла requirements |
pip freeze > requirements.txt |
Экспорт текущих зависимостей |
Установка зависимостей |
pip install -r requirements.txt |
Установка из файла requirements |
Обновление зависимостей |
pip install --upgrade -r requirements.txt |
Обновление пакетов |
Продвинутая настройка окружения
Несколько версий Python
## Install pyenv
curl https://pyenv.run | bash
## Install multiple Python versions
pyenv install 3.8.10
pyenv install 3.9.7
pyenv install 3.10.5
## Set global/local Python versions
pyenv global 3.9.7
pyenv local 3.10.5
Техники изоляции окружения
1. Отдельные директории проектов
/home/user/projects/
├── project1_env/
│ └── ...
├── project2_env/
│ └── ...
└── project3_env/
└── ...
2. Использование virtualenvwrapper
## Install virtualenvwrapper
pip3 install virtualenvwrapper
## Configure shell
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
source /usr/local/bin/virtualenvwrapper.sh
## Create and manage environments
mkvirtualenv myproject
workon myproject
deactivate
rmvirtualenv myproject
Лучшие практики
- Всегда используйте виртуальные окружения.
- Создавайте минимальные окружения.
- Используйте файл requirements.txt.
- Избегайте установки пакетов на уровне системы.
- Регулярно обновляйте зависимости.
Вопросы безопасности
- Ограничивайте доступ к окружению.
- Используйте виртуальные окружения в производственной среде.
- Регулярно обновляйте пакеты.
- Используйте инструменты сканирования на безопасность.
Рекомендация LabEx
LabEx рекомендует овладеть техниками работы с виртуальными окружениями, чтобы обеспечить чистый, воспроизводимый и безопасный рабочий процесс разработки на Python.