Показать сообщение отдельно

Как настроить виртуальное окружение Python — обсуждение
  #1  
Старый 26.06.2026, 00:20
DronSS
Новичок
Регистрация: 08.06.2004
Сообщений: 6
С нами: 11536981

Репутация: 0
По умолчанию Как настроить виртуальное окружение Python — обсуждение

Как настроить виртуальное окружение Python — обсуждение

Зачем нужны виртуальные окружения

Виртуальное окружение — это такая «комнатка» для каждого вашего проекта на Python, где есть свои библиотеки и настройки. Представьте, что у вас несколько проектов, и каждый требует разные версии одних и тех же библиотек. Без виртуальных окружений придётся постоянно мучиться с глобальными установками, что ведёт к конфликтам и ошибкам. Например, один проект работает на Django 2, а другой — на Django 3. Если установить только одну версию глобально, второй проект сломается. Вот тут виртуалки и приходят на помощь.

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

Как создавать виртуальное окружение

Самый простой и стандартный способ — использовать встроенный модуль venv, который есть в Python 3.3 и выше. Команда для создания окружения очень простая. На терминале в папке проекта пишем:

python -m venv env

Где `env` — имя папки, в которую засунется виртуальное окружение. Можно назвать как угодно, но обычно называют именно так, чтобы потом не забыть.

Как активировать виртуальное окружение

Активация — ключевой момент, без неё вы работаете с глобальным Python, а не с изолированным. Процесс немного отличается в зависимости от операционной системы.

Если вы на Windows, то в командной строке или PowerShell пишем:

env\Scripts\activate

А в Linux или macOS:

source env/bin/activate

Если видим, что имя окружения появилось в начале строки терминала, всё успешно.

После активации все установки pip, запуск скриптов и прочее ведутся внутри этого виртуального окружения.

Как устанавливать пакеты и что с этим делать

Пока виртуалка активна, ставьте библиотеки привычно:

pip install requests

Они установятся только в текущее окружение. Если захотите зафиксировать список зависимостей для других (например, для коллег или сервера), используйте:

pip freeze > requirements.txt

А чтобы потом восстановить всё это на другой машине или окружении:

pip install -r requirements.txt

Важный момент: не забывайте всегда активировать окружение перед работой с проектом, если этого не делать — установленные пакеты будут глобальными.

Что делать если не работает?

Иногда при запуске команды активации появляется ошибка, особенно в Windows, связанная с политикой безопасности PowerShell. Если видите что-то вроде «execution of scripts is disabled», надо разрешить запуск:

Запустите PowerShell от имени администратора и выполните:

Set-ExecutionPolicy RemoteSigned

Это даст возможность запускать скрипты локально, которые подписаны или написаны вами.

Типичные ошибки при работе с виртуальным окружением

1. Неактивированное окружение. Очень частая история — загрузили проект, взяли команду установить пакеты, а виртуалка не была включена. Пакеты улетают глобально, а проект всё равно ломается.

2. Неправильный путь при активации. Особенно в Windows терминальная среда путается, если запускаете в PowerShell, CMD и Git Bash по-разному.

3. Забытые зависимости. Поставили новые библиотеки, но не экспортировали requirements.txt — при переносе проекта на другую машину возникнут проблемы.

4. Использование старого pip. Обновляйте pip внутри виртуалки командой:

python -m pip install --upgrade pip

Иначе не сможете ставить свежие пакеты.

5. Удалили папку с виртуальным окружением, забыв, что там лежат все установленные библиотеки. Тогда придётся создавать заново и устанавливать пакеты.

Расширенный практический пример

Допустим, вы пишете веб-приложение на Flask:

1. Создаёте папку проекта:

mkdir my_flask_app
cd my_flask_app

2. Создаёте виртуальное окружение:

python -m venv env

3. Активируете его:

source env/bin/activate (для Linux/macOS)

или

env\Scripts\activate (для Windows)

4. Обновляете pip:

python -m pip install --upgrade pip

5. Ставите Flask:

pip install Flask

6. Пишете простой код app.py:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
return "Привет с Flask в виртуальном окружении!"

7. Запускаете:

python app.py

8. Когда всё готово, сохраняете зависимости:

pip freeze > requirements.txt

9. Если захотите перенести или запустить на другом компьютере, просто повторите шаги создания и активации виртуалки, а потом:

pip install -r requirements.txt

Чек-лист для настройки виртуального окружения

- Установлен Python версии не ниже 3.3
- Перешли в папку проекта в терминале
- Создали виртуальное окружение: python -m venv имя_папки
- Активировали окружение (source или \Scripts\activate)
- Обновили pip внутри виртуалки
- Установили необходимые пакеты через pip
- Создали requirements.txt через pip freeze
- Перед запуском всегда активируйте окружение
- Если проблемы с активацией в Windows — проверьте ExecutionPolicy
- Не удаляйте папку с виртуальным окружением, пока не готовы

FAQ

В: Можно ли иметь несколько виртуальных окружений для одного проекта?
О: Обычно нет смысла, лучше одно полноценное с нужными пакетами. Но если хотите тестировать разные версии — да, можно создать пару.

В: Можно ли использовать virtualenv вместо venv?
О: Можно. virtualenv был популярнее раньше и работает на Python 2, но сейчас venv — стандартный и проще. virtualenv иногда лучше справляется с особенностями.

В: Как выйти из виртуального окружения?
О: Просто пропишите команду deactivate в терминале, и вы вернётесь к глобальному Python.

В: Что делать, если забыл активировать виртуалку и поставил пакеты глобально?
О: Придётся либо переустановить их в виртуалке, либо удалить из глобального пространства вручную. Лучше не забывать сразу активировать.

В: Можно ли использовать виртуальные окружения для Jupyter Notebook?
О: Да, нужно просто установить ipykernel внутри виртуалки и добавить это окружение как ядро в Jupyter.

На практике виртуальные окружения — это мастхэв для любого, кто серьёзно занимается программированием на Python. Это не просто удобство, а основа порядка в ваших проектах. Обсуждайте, делитесь лайфхаками, вопросы приветствуются!
 
Ответить с цитированием