Способы запуска Python 2: от pyenv до контейнеризации
Обзор методов запуска Python 2
Как обеспечить переключение между версиями Python и запуск Python 2?
Pyenv – инструмент для управления версиями Python на уровне пользователя.
Установка pyenv (Linux/macOS):
curl https://pyenv.run | bashPython настройки приложения (настройки приложения на python)
Добавить в ~/.bashrc:
export PATH="$HOME/.pyenv/bin:$PATH"\neval "$(pyenv init -)"\neval "$(pyenv virtualenv-init -)"Python переменные окружения (переменные окружения в python)
Установка Python 2.7.18:
pyenv install 2.7.18Path python (путь к python)
Создание виртуального окружения с Python 2:
pyenv virtualenv 2.7.18 myproject2Python environment path (путь к окружению python)
Активация:
pyenv activate myproject2Python windows paths (работа с путями в python на windows)
Проверка версии:
python --versionPython файлы настроек (файлы конфигурации в python)
Проблема: pyenv: python2.7.18 not installed – если версия не найдена. Решение: сначала выполнить pyenv install --list для проверки доступных версий.
Ошибка: bash: pyenv: command not found – не добавлен PATH. Проверить экспорт в .bashrc.
Как быстро запустить Python 2 без дополнительных инструментов?
Установка через apt (Debian/Ubuntu):
sudo apt update\nsudo apt install python2Open python 2 (запуск python 2)
Или yum (CentOS/RHEL):
sudo yum install python2Python online interpreter (онлайн интерпретатор python)
Проверка:
python2 --versionUsing python pip (установка пакетов через pip в python)
Проблема: пакет может называться python2.7 или отсутствовать в репозитории. Решение: использовать apt search python2 для поиска.
На современных дистрибутивах Python 2 может быть удалён из репозиториев. Альтернатива – собрать из исходников или использовать pyenv.
Как изолировать Python 2 и его зависимости от основной системы?
Использование официального образа Python 2:
docker run -it --rm python:2.7-slim pythonPython interpreter (интерпретатор python)
Для запуска скрипта:
docker run -v $(pwd):/app -w /app python:2.7-slim python script.pyPython добавить путь (добавление пути в sys.path в python)
Создание Dockerfile:
FROM python:2.7-slim\nCOPY script.py .\nCMD ["python", "script.py"]
Проблема: образ может отсутствовать локально – первая загрузка занимает время.
Ошибка: docker: command not found – Docker не установлен.
Как создать изолированное окружение для проекта на Python 2?
Предположим, Python 2 установлен как python2. Установка virtualenv:
pip2 install virtualenv
Создание окружения:
virtualenv -p /usr/bin/python2 myenv
Активация:
source myenv/bin/activate
Проверка:
python --version
Проблема: pip2 может отсутствовать. Установить через sudo apt install python-pip (для Python 2).
Ошибка: virtualenv: command not found – не установлен в PATH. Установить через pip.
Как управлять несколькими версиями Python с помощью conda?
Установка Anaconda или Miniconda. Создание среды с Python 2.7:
conda create -n py27 python=2.7
Активация:
conda activate py27
Проверка:
python --version
Проблема: conda: command not found – не добавлен в PATH. Перезапустить терминал или добавить вручную.
Ошибка: при создании среды может требоваться подключение к интернету для загрузки пакетов.
Расширенные примеры работы с Python 2
1. Pyenv: управление версиями и пакетами
# Установка Python 2.7.18 и 3.8.10
pyenv install 2.7.18
pyenv install 3.8.10
# Глобальная версия
pyenv global 2.7.18
python --version # Python 2.7.18
# Локальная версия для проекта
cd myproject
pyenv local 3.8.10
python --version # Python 3.8.10
# Установка пакетов для Python 2
pyenv shell 2.7.18
pip install requests==2.25.0
Python 2.7.18 Python 3.8.10 Successfully installed requests-2.25.0
2. Docker: образ с зависимостями
# Dockerfile
FROM python:2.7-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt --no-cache-dir
COPY . .
CMD ["python", "main.py"]
# requirements.txt
numpy==1.16.6
scipy==1.2.3
# Сборка образа
docker build -t py2-app .
# Запуск
docker run -it --rm py2-app
(вывод программы main.py)
3. Virtualenv: изоляция окружения
# Предположим python2 установлен в /usr/bin/python2
virtualenv -p /usr/bin/python2 venv
source venv/bin/activate
# Установка пакета
pip install six
# Деактивация
deactivate
# Проверка, что пакет не виден вне окружения
python -c "import six" # Ошибка ModuleNotFoundError
(успешная установка) (после деактивации: ModuleNotFoundError: No module named six)
4. Conda: экспорт и воссоздание среды
# Создание среды
conda create -n py27 python=2.7 numpy=1.16
# Экспорт
conda env export > environment.yml
# Воссоздание
conda env create -f environment.yml
# environment.yml содержит зависимости