👁 В случае работы с несколькими проектами на Python, каждый из которых требует различных зависимостей, важно обеспечить изоляцию сред. Это можно сделать с помощью автоматического развертывания виртуальных окружений для каждого проекта.
📝 Пример автоматизации развертывания виртуального окружения и установки зависимостей:
import os
import subprocess
def create_virtualenv(project_path):
venv_path = os.path.join(project_path, 'venv')
# Проверяем, существует ли окружение
if not os.path.exists(venv_path):
subprocess.check_call(['python3', '-m', 'venv', venv_path])
print(f"Создано виртуальное окружение в {venv_path}")
else:
print(f"Виртуальное окружение уже существует в {venv_path}")
def install_requirements(project_path):
requirements_path = os.path.join(project_path, 'requirements.txt')
if os.path.exists(requirements_path):
subprocess.check_call([os.path.join(project_path, 'venv', 'bin', 'pip'), 'install', '-r', requirements_path])
print(f"Установлены зависимости из {requirements_path}")
else:
print(f"Файл requirements.txt не найден в {project_path}")
def setup_project(project_path):
create_virtualenv(project_path)
install_requirements(project_path)
if __name__ == \"__main__\":
project_path = '/path/to/your/project'
setup_project(project_path)📌 Как это работает:
- Скрипт проверяет наличие виртуального окружения в указанной директории.
- Если окружение не существует, оно автоматически создается с помощью
python3 -m venv. - После этого скрипт устанавливает зависимости, указанные в файле
requirements.txt, активируя созданное окружение.
❗️ Такой подход позволяет полностью автоматизировать подготовку рабочей среды для Python-проектов, что особенно полезно при настройке CI/CD пайплайнов и когда нужно обеспечить одинаковые окружения для разных разработчиков или серверов.
tags: #python #автоматизация



