Установка и использование модуля virtualenv для Python
В материале рассматривается установка модулем virtualenv для Python 2.7. и работа с виртуальным окружением.
Что бы использовать виртуальное окружение в Python 3.5 и выше, используйте встроенный модуль venv .
Установка virtualenv в Python 2.7.
Внимание! Сторонний модуль virtualenv для Unix систем необходимо устанавливать под версию python, которая используется операционной системой по умолчанию.
Для начала использования virtualenv , ее нужно установить. Виртуальное окружение будем ставить в систему, т. к. виртуальная среда системой ни как не используется. Это первое и последнее, что устанавливается в систему.
Помним, что поставляемый с Unix системами Python не имеет пакетного менеджера pip , следовательно модуль virtualenv , необходимо устанавливать из пакетов операционной системы, при помощи пакетного менеджера apt-get или используя флаг -m интерпретатора Python. Пользователям Windows, то же будет интересно yзнать о таком методе установки пакетов, не входящих в стандартную библиотеку.
# Для пользователей Ubuntu, Debian $ sudo apt install python-virtualenv # или $ sudo python -m pip install virtualenv # Для пользователей Windows > python -m pip install virtualenv
Для Unix систем предпочтительней использовать установку уже скомпилированного модуля virtualenv под используемую по умолчанию версию Python операционной системы, командой sudo apt install python-virtualenv .
Установка virtualenv в Python 3.x.
Если в вашей системе по умолчанию используется версия Python3, то модуль virtualenv можно установить следующей командой:
# Для пользователей Ubuntu, Debian $ sudo apt install python3-virtualenv $ virtualenv --version virtualenv 20.0.17 from /usr/lib/python3/dist-packages/virtualenv/__init__.py
Обратите внимание, что в Debian, установленный таким образом модуль virtualenv для python3 может не заработать. В таком случае, необходимо файл virtualenv.py запускать вручную или, для удобства создать командный файл. В дистрибутивах Ubuntu, такой проблемы не замечено.
$ python3 /usr/lib/python3/dist-packages/virtualenv.py
Так же для версий Python 3.5 и выше, для создания виртуальных сред, можно использовать встроенный модуль venv . В этом случае устанавливать ничего не надо. Обратите внимание, что функциональность и приемы использования встроенного модуля venv сильно отличается от стороннего модуля virtualenv .
Использование virtualenv.
Перенос экземпляра системного Python или того, который мы установили:
# Создаем директорию для нашего виртуального окружения $ mkdir myVenv # Для переноса экземпляра Python v.3, если он установлен в системе $ virtualenv --python=python3 myVenv # Для переноса экземпляра нужного нам Python для Linux $ virtualenv --python=/path/to/python-3.x.x/bin/python myVenv # Для переноса экземпляра нужного нам Python для Windows > virtualenv --python=c:\python-3.x.x\bin\python myVenv
Где /path/to/python-3.x.x/bin/python путь до бинарного файла, нужного нам интерпретатора Python например /opt/python-3.7.4/bin/python или для Windows c:\python-3.7.4\bin\python
Активация виртуального окружения:
# Для Linux $ source /path/to/myVenv/bin/activate # Для Windows > c:\myVenv\Scripts\activate
После активации виртуального окружения вы можете, без каких либо ограничений и без sudo , пользоваться pip не боясь причинить ущерб системе. Таких виртуальных сред может быть бесконечно много и все они будут изолированы как друг от друга, так и от системы. Каждая виртуальная среда может иметь свою собственную версию Python и может иметь собственный независимый набор установленных пакетов.
Для выхода из виртуального окружения просто наберите deactivate
$ deactivate
Для удаления virtualenv, просто удалите директорию с виртуальным окружением
$ rm -r /path/to/myVenv
Справочное руководство virtualenv.
Использование:
virtualenv [ОПЦИИ] ENV_DIR
- где ENV_DIR абсолютный или относительный путь к каталогу, в котором создается виртуальная среда.
Опции:
- -version : показывает установленную версию virtualenv
- -h , —help : показать это справочное сообщение и выйти
- -v , —verbose : увеличивает вывод информации.
- -q , —quiet : уменьшает вывод информации.
- -p PYTHON_EXE , —python=PYTHON_EXE : используемый интерпретатор Python, например, —python=/opt/python-3.7.4/bin/python будет использовать интерпретатор из директории /opt/python-3.7.4/bin/python для создания новой среды. По умолчанию используется интерпретатор, с которым был установлен virtualenv.
- —clear : очищает установку, что бы начать с нуля.
- —system-site-packages : передает виртуальной среде доступ к глобальным пакетам.
- —always-copy : копирует файлы, а не символические ссылки.
- —relocatable : делает СУЩЕСТВУЮЩУЮ среду virtualenv перемещаемой. Это исправляет сценарии и делает все файлы .pth относительными.
- —unzip-setuptools : разархивирует Setuptools при установке.
- —no-setuptools : не устанавливает setuptools в новом virtualenv.
- —no-pip : не устанавливает pip в новом virtualenv.
- —extra-search-dir=DIR : каталог для поиска дистрибутивов pip. Эту опцию можно указывать несколько раз.
- —prompt=PROMPT : предоставляет альтернативный префикс приглашения для этой среды.
- —download : загружает предустановленные пакеты из PyPI.
- —no-download : не загружает предустановленные пакеты из PyPI.
- —no-site-packages : РЕКОМЕНДУЕТСЯ. Отсутствие доступа к пакетам переносимого Python в виртуальное окружение, теперь является поведением по умолчанию.
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Что дает виртуальная среда исполнения?
- Установка и использование модуля virtualenv для Python
- Установка и использование менеджера пакетов PIP
- IDE для написания программ на Python
Установка и настройка среды разработки Python 3 в Ubuntu 18.04
Из этой статьи вы узнаете, как установить Python и настроить среду разработки на Ubuntu 18.04.
Предварительные требования
Для работы вам понадобится сервер Ubuntu 18.04 с базовыми настройками.
Обновление программного обеспечения
В системе Ubuntu 18.04 и других дистрибутивах, основанных на Debian, Python 3 и Python 2 установлены по умолчанию, поэтому на первом шаге достаточно выполнить обновление пакетов. Войдите на сервер Ubuntu 18.04 под sudo и обновите пакеты с помощью APT (Advanced Packaging Tool):
sudo apt update sudo apt -y upgrade
Флаг –y автоматически подтвердит любые запросы системы.
Проверка версии Python
Проверьте версию Python 3 с помощью следующей команды:
python3 -V
В ответе вы увидите номер текущей версии, например:
Python 3.6.7
Установка pip
Чтобы управлять программными пакетами Python, установите pip — инструмент, который помогает устанавливать необходимые для проекта библиотеки и модули и управлять ими.
sudo apt install -y python3-pip
Теперь вы можете устанавливать пакеты Python3 с помощью pip :
pip3 install имя_пакета
Вместо имя_пакета укажите имя любого пакета или библиотеки Python, например, Django для веб-разработки или NumPy для научных вычислений. Например, для установки NumPy введите pip3 install numpy .
Установка дополнительных инструментов
Есть еще несколько пакетов и инструментов для разработки, чтобы обеспечить надежную настройку среды:
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev
Установка venv (Virtual Environment)
Виртуальная среда обеспечивает изолированное пространство для проектов Python на сервере, то есть, все необходимые зависимости — исполняемые файлы, библиотеки и прочие файлы копируются в некоторый выбранный каталог, а приложение использует их, а не установленные в системе. Это позволяет обеспечить стабильность среды разработки и чистоту основной системы.
Мы будем использовать модуль venv , часть стандартной библиотеки Python 3, который можно установить с помощью:
sudo apt install -y python3-venv
Создание виртуальной среды для приложения
Создать новую среду можно с помощью модуля venv . В примере ниже мы назовем новую среду env , вы можете указать любое желаемое название.
mkdir myapp && cd myapp python3 -m venv env
Активация окружения виртуальной среды
Активируйте виртуальную среду с помощью приведенной ниже команды, где env — это имя вашего окружения разработки.
source env/bin/activate
После активации строка приглашения интерпретатора команд будет иметь префикс с именем среды:
(env) netpoint@ubuntu:~/myapp$
Тестирование виртуальной среды
Запустите интерпретатор Python:
(env) netpoint@ubuntu:~/myapp$ python
Помните, что в виртуальной среде Python 3 вместо команды python3 можно использовать python , а вместо pip3 — pip .
Воспользуйтесь функцией print() , чтобы создать стандартную программу «Hello, World»:
Python 3.6.5 (default, Apr 1 2018, 05:46:30 [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello, World!") Hello, World! >>> quit()
Деактивация виртуальной среды
Для деактивации среды используйте специальную команду:
(env) netpoint@ubuntu:~/myapp$ deactivate
Использование в приложениях (shebang)
Очень важно в приложениях изменить полный путь #!/usr/bin/python3 на #!/usr/bin/env python . Это позволит выбирать правильный транслятор, независимо от того, выполняется ли скрипт в рамках venv и или в системном окружении. Если вы оставляете путь #!/usr/bin/python3 , всегда будет использоваться системный интерепретатор, чувствительный к изменению среды.
Автоматическая активация виртуальной среды при запуске приложения
Для автоматической активации виртуальной среды при запуске приложения вы можете создать скрипт-обертку, который выполнит необходимые действия.
Подготовим скрипт myapp/run.sh для запуска приложения service.py в рамках виртуального окружения со следующим содержимым:
#!/usr/bin/env bash BASEDIR=$(dirname "$0") echo "Executing App in '$BASEDIR'" PORT=$1 source $BASEDIR/env/bin/activate python $BASEDIR/service.py $PORT
Установим права на исполнение и протестируем его запуск:
chmod +x myapp/run.sh ./myapp/run.sh 8888
Заключение
Изолированная виртуальная среда разработки Python создана, можно приступать к разработке на python.
Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm
Язык программирования Python считается достаточно простым. На нем легче и быстрее пишутся программы, по сравнению с компилируемыми языками программирования. Для Python существует множество библиотек, позволяющих решать практически любые задачи. Есть, конечно, и минусы и другие нюансы, но это отдельная тема.
Довольно часто я вижу, как мои знакомые и друзья начинают изучать Python и сталкиваются с проблемой установки и использования сторонних библиотек. Они могут несколько часов потратить на установку библиотеки, и даже, могут не справиться с этим и забить на неё. В то время как, в большинстве случаев, это можно было сделать за несколько минут.
Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.
После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.
Установка Python и Pip
Pip является менеджером пакетов для Python. Именно с помощью него обычно устанавливаются модули/библиотеки для разработки в виде пакетов. В Windows Pip можно установить через стандартный установщик Python. В Ubuntu Pip ставится отдельно.
Установка Python и Pip в Windows
Для windows заходим на официальную страницу загрузки, где затем переходим на страницу загрузки определенной версии Python. У меня используется Python 3.6.8, из-за того, что LLVM 9 требует установленного Python 3.6.
Далее в таблице с файлами выбираем «Windows x86-64 executable installer» для 64-битной системы или «Windows x86 executable installer» для 32-битной. И запускаем скачанный установщик, например, для версии Python 3.8.1 он называется python-3.8.1-amd64.exe .
Во время установки ставим галочку возле Add Python 3.x to PATH и нажимаем Install Now:
Установка Python и Pip в Ubuntu
В Ubuntu установить Python 3 можно через терминал. Запускаем его и вводим команду установки. Вторая команда выводит версию Python.
sudo apt install python3-minimal python3 -V
Далее устанавливаем Pip и обновляем его. После обновления необходимо перезапустить текущую сессию (или перезагрузить компьютер), иначе возникнет ошибка во время вызова Pip.
sudo apt install python3-pip pip3 install --user --upgrade pip
Основные команды Pip
Рассмотрим основные команды при работе с Pip в командой строке Windows и в терминале Ubuntu.
Команда | Описание |
---|---|
pip help | Справка по командам |
pip search package_name | Поиск пакета |
pip show package_name | Информация об пакете |
pip install package_name | Установка пакета(ов) |
pip uninstall package_name | Удаление пакета(ов) |
pip list | Список установленных пакетов |
pip install -U | Обновление пакета(ов) |
Если виртуальные окружения не используются, то во время установки пакета(ов) полезно использовать дополнительно ключ —user , устанавливая пакет(ы) локально только для текущего пользователя.
Установка VirtualEnv и VirtualEnvWrapper
VirtualEnv используется для создания виртуальных окружений для Python программ. Это необходимо для избежания конфликтов, позволяя установить одну версию библиотеки для одной программы, и другу для второй. Всё удобство использования VirtualEnv постигается на практике.
Установка VirtualEnv и VirtualEnvWrapper в Windows
В командной строке выполняем команды:
pip install virtualenv pip install virtualenvwrapper-win
Установка VirtualEnv и VirtualEnvWrapper в Ubuntu
Для Ubuntu команда установки будет следующей:
pip3 install --user virtualenv virtualenvwrapper
После которой в конец ~/.bashrc добавляем:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source ~/.local/bin/virtualenvwrapper.sh
При новом запуске терминала должны будут появиться сообщения, начинающиеся на virtualenvwrapper.user_scripts creating , что говорит об успешном завершении установки.
Работа с виртуальным окружением VirtualEnv
Рассмотрим основные команды при работе с VirtualEnv в командой строке Windows и в терминале Ubuntu.
Команда | Описание |
---|---|
mkvirtualenv env-name | Создаем новое окружение |
workon | Смотрим список окружений |
workon env-name | Меняем окружение |
deactivate | Выходим из окружения |
rmvirtualenv env-name | Удаляем окружение |
Находясь в одном из окружений, можно ставить пакеты через Pip, как обычно и нет необходимости добавлять ключ —user :
pip3 install markdown
Для Windows можно указать в переменных среды WORKON_HOME для переопределения пути, где хранятся виртуальные окружения. По умолчанию, используется путь %USERPROFILE%\Envs .
Установка PyCharm
PyCharm — интегрированная среда разработки для языка программирования Python. Обладает всеми базовыми вещами необходимых для разработки. В нашем случае огромное значение имеет хорошее взаимодействие PyCharm с VirtualEnv и Pip, чем мы и будем пользоваться.
Установка PyCharm в Windows
Скачиваем установщик PyCharm Community для Windows с официального сайта JetBrains. Если умеете проверять контрольные суммы у скаченных файлов, то не забываем это сделать.
В самой установке ничего особенного нету. По сути только нажимаем на кнопки next, и в завершение на кнопку Install. Единственно, можно убрать версию из имени папки установки, т.к. PyCharm постоянно обновляется и указанная версия в будущем станет не правильной.
Установка PyCharm в Ubuntu
Скачиваем установщик PyCharm Community для Linux с официального сайта JetBrains. Очень хорошей практикой является проверка контрольных сумм, так что если умеете, не ленитесь с проверкой.
Распаковываем архив с PyCharm и переименовываем папку с программой в pycharm-community , убрав версию из названия.
Теперь в директории ~/.local (Ctrl + H — Показ скрытый файлов), создаем папку opt , куда и перемещаем pycharm-community . В результате по пути /.local/opt/pycharm-community должны размещаться папки bin , help и т.д. Таким образом PyCharm будет находится в своём скромном месте и никому не будет мешать.
Далее выполняем команды в терминале:
cd /home/maksim/.local/opt/pycharm-community/bin sh ./pycharm.sh
Производим установку. И очень важно в конце не забыть создать desktop файл для запуска PyCharm. Для этого в Окне приветствия в нижнем правом углу нажимаем на Configure → Create Desktop Entry.
Установка PyCharm в Ubuntu из snap-пакета
PyCharm теперь можно устанавливать из snap-пакета. Если вы используете Ubuntu 16.04 или более позднюю версию, можете установить PyCharm из командной строки.
sudo snap install pycharm-community --classic
Использование VirtualEnv и Pip в PyCharm
Поддержка Pip и Virtualenv в PyCharm появилась уже довольно давно. Иногда конечно возникают проблемы, но взаимодействие работает в основном стабильно.
Рассмотрим два варианта работы с виртуальными окружениями:
- Создаём проект со своим собственным виртуальным окружением, куда затем будут устанавливаться необходимые библиотеки;
- Предварительно создаём виртуальное окружение, куда установим нужные библиотеки. И затем при создании проекта в PyCharm можно будет его выбирать, т.е. использовать для нескольких проектов.
Первый пример: использование собственного виртуального окружения для проекта
Создадим программу, генерирующую изображение с тремя графиками нормального распределения Гаусса Для этого будут использоваться библиотеки matplotlib и numpy, которые будут установлены в специальное созданное виртуальное окружение для программы.
Запускаем PyCharm и окне приветствия выбираем Create New Project.
В мастере создания проекта, указываем в поле Location путь расположения создаваемого проекта. Имя конечной директории также является именем проекта. В примере директория называется ‘first_program’.
Далее разворачиваем параметры окружения, щелкая по Project Interpreter. И выбираем New environment using Virtualenv. Путь расположения окружения генерируется автоматически. В Windows можно поменять в пути папку venv на Envs , чтобы команда workon находила создаваемые в PyCharm окружения. Ставить дополнительно галочки — нет необходимости. И нажимаем на Create.
Теперь установим библиотеки, которые будем использовать в программе. С помощью главного меню переходим в настройки File → Settings. Где переходим в Project: project_name → Project Interpreter.
Здесь мы видим таблицу со списком установленных пакетов. В начале установлено только два пакета: pip и setuptools.
Справа от таблицы имеется панель управления с четырьмя кнопками:
- Кнопка с плюсом добавляет пакет в окружение;
- Кнопка с минусом удаляет пакет из окружения;
- Кнопка с треугольником обновляет пакет;
- Кнопка с глазом включает отображение ранних релизов для пакетов.
Для добавления (установки) библиотеки в окружение нажимаем на плюс. В поле поиска вводим название библиотеки. В данном примере будем устанавливать matplotlib. Дополнительно, через Specify version можно указать версию устанавливаемого пакета и через Options указать параметры. Сейчас для matplotlib нет необходимости в дополнительных параметрах. Для установки нажимаем Install Package.
После установки закрываем окно добавления пакетов в проект и видим, что в окружение проекта добавился пакет matplotlib с его зависимостями. В том, числе был установлен пакет с библиотекой numpy. Выходим из настроек.
Теперь мы можем создать файл с кодом в проекте, например, first.py. Код программы имеет следующий вид:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-5, 5, 100) def gauss(sigma, mu): return 1/(sigma * (2*np.pi)**.5) * np.e ** (-(x-mu)**2/(2 * sigma**2)) dpi = 80 fig = plt.figure(dpi=dpi, figsize=(512 / dpi, 384 / dpi)) plt.plot(x, gauss(0.5, 1.0), 'ro-') plt.plot(x, gauss(1.0, 0.5), 'go-') plt.plot(x, gauss(1.5, 0.0), 'bo-') plt.legend(['sigma = 0.5, mu = 1.0', 'sigma = 1.0, mu = 0.5', 'sigma = 1.5, mu = 0.0'], loc='upper left') fig.savefig('gauss.png')
Для запуска программы, необходимо создать профиль с конфигурацией. Для этого в верхнем правом углу нажимаем на кнопку Add Configuration. . Откроется окно Run/Debug Configurations, где нажимаем на кнопку с плюсом (Add New Configuration) в правом верхнем углу и выбираем Python.
Далее указываем в поле Name имя конфигурации и в поле Script path расположение Python файла с кодом программы. Остальные параметры не трогаем. В завершение нажимаем на Apply, затем на OK.
Теперь можно выполнить программу и в директории с программой появится файл gauss.png :
Второй пример: использование предварительно созданного виртуального окружения
Данный пример можно использовать во время изучения работы с библиотекой. Например, изучаем PySide2 и нам придется создать множество проектов. Создание для каждого проекта отдельного окружения довольно накладно. Это нужно каждый раз скачивать пакеты, также свободное место на локальных дисках ограничено.
Более практично заранее подготовить окружение с установленными нужными библиотеками. И во время создания проектов использовать это окружение.
В этом примере мы создадим виртуальное окружения PySide2, куда установим данную библиотеку. Затем создадим программу, использующую библиотеку PySide2 из предварительно созданного виртуального окружения. Программа будет показывать метку, отображающую версию установленной библиотеки PySide2.
Начнем с экран приветствия PyCharm. Для этого нужно выйти из текущего проекта. На экране приветствия в нижнем правом углу через Configure → Settings переходим в настройки. Затем переходим в раздел Project Interpreter. В верхнем правом углу есть кнопка с шестерёнкой, нажимаем на неё и выбираем Add. , создавая новое окружение. И указываем расположение для нового окружения. Имя конечной директории будет также именем самого окружения, в данном примере — pyside2 . В Windows можно поменять в пути папку venv на Envs , чтобы команда workon находила создаваемые в PyCharm окружения. Нажимаем на ОК.
Далее в созданном окружении устанавливаем пакет с библиотекой PySide2, также как мы устанавливали matplotlib. И выходим из настроек.
Теперь мы можем создавать новый проект использующий библиотеку PySide2. В окне приветствия выбираем Create New Project.
В мастере создания проекта, указываем имя расположения проекта в поле Location. Разворачиваем параметры окружения, щелкая по Project Interpreter, где выбираем Existing interpreter и указываем нужное нам окружение pyside2 .
Для проверки работы библиотеки создаем файл second.py со следующий кодом:
import sys from PySide2.QtWidgets import QApplication, QLabel from PySide2 import QtCore if __name__ == "__main__": app = QApplication(sys.argv) label = QLabel(QtCore.qVersion()) label.show() QtCore.qVersion() sys.exit(app.exec_())
Далее создаем конфигурацию запуска программы, также как создавали для первого примера. После чего можно выполнить программу.
Заключение
У меня нет богатого опыта программирования на Python. И я не знаком с другими IDE для Python. Поэтому, возможно, данные IDE также умеют работать с Pip и Virtualenv. Использовать Pip и Virtualenv можно в командой строке или в терминале. Установка библиотеки через Pip может завершиться ошибкой. Есть способы установки библиотек без Pip. Также создавать виртуальные окружения можно не только с помощью Virtualenv.
В общем, я лишь поделился небольшой частью опыта из данной области. Но, если не вдаваться в глубокие дебри, то этого вполне достаточно знать, чтобы писать простые программы на Python с использованием сторонних библиотек.
- Python
- Программирование
Python: установка virtualenv
Виртуальное окружение virtualenv — это инструмент, позволяющий создавать изолированные среды для отдельных проектов Python, решая тем самым проблему зависимостей и совместимости приложений разных версий. Подробнее о виртуальном окружении Python можно прочитать в официальной документации .
После установки virtualenv вы можете использовать pip для установки библиотек Python.
В зависимости от ваших задач установку можно выполнить в домашнюю директорию или в директорию конкретного сайта.
- Версии Python
- Установка в корень аккаунта
- Установка в конкретный каталог
- Использование PIP
- Основные команды pip
- Файл requirements.txt
- Восстановление виртуального окружения с помощью requirements.txt
- No module named ‘имя_модуля’
- Target WSGI script ‘/путь/до/скрипта/index.wsgi’ cannot be loaded as Python module
- DisallowedHost at / Invalid HTTP_HOST header
- AttributeError: module ‘MySQLdb.constants.FIELD_TYPE’ has no attribute ‘JSON’
- The SECRET_KEY setting must not be empty
Версии Python
По умолчанию на наших серверах доступны версии Python 2 и Python 3.6, но вы также можете использовать версию Python 3.5.
Проверить версии Python на сервере можно с помощью команд:
# Версии Python 2:
python -V
# Версии Python 3:
python3 -VВерсии Python обратно совместимы, то есть приложение, написанное на 3.6, скорее всего, будет работать под 3.7, и так далее. Однако не всегда код, написанный на новых версиях, будет корректно работать на старых версиях из-за возможного нового синтаксиса и функций языка. Также обратите внимание, что Python 2 и Python 3 несовместимы между собой.
При создании виртуального окружения нужно использовать корректное имя интерпретатора, в зависимости от нужной вам версии Python:
# Если требуется Python2:
python virtualenv.pyz venv
# Если требуется Python3.5:
python3.5 virtualenv.pyz venv
# Если требуется Python3.6:
python3.6 virtualenv.pyz venvТаким образом, при выполнении команды:
python3 virtualenv.pyz venv
окружение будет содержать интерпретатор Python3. Если вам нужна версия 2, то необходимо вызывать python :
python virtualenv.pyz venv
Обратите внимание, что в виртуальном окружении доступна только та версия Python 3 , которая была выбрана при создании виртуального окружения. Например, запустить скрипт через Python 3.5 в виртуальном окружении, созданном через Python 3.6, не получится:
(env) $ python3.5 --version
Command 'python3.5' not foundПри этом Python 2 будет доступен:
(env) $ python2 --version
Python 2.7.17Проверить версию Python в созданном виртуальном окружении можно командой:
(env) $ python --version
Python 3.6.9Установка в корень аккаунта
Установить одну из последних версий виртуального окружения в корень аккаунта можно по инструкции ниже.
- Скачать virtualenv , указав в команде нужную версию Python.
wget https://bootstrap.pypa.io/virtualenv/X.X/virtualenv.pyz
Например, для Python 3.6:
wget https://bootstrap.pypa.io/virtualenv/3.6/virtualenv.pyz
- Создать виртуальное окружение, используя нужную версию Python . Например:
# Если требуется Python3:
python3 virtualenv.pyz venv
# Если требуется Python2:
python virtualenv.pyz venvПри этом будет создана директория venv , из которой будет запускаться виртуальное окружение (имя директории можно задать любое).
- Активировать виртуальное окружение:
source venv/bin/activate
Далее вы можете приступить к установке библиотек с помощью pip . После отключить виртуальное окружение можно командой deactivate .
Установка в конкретный каталог
Если виртуальное окружение требуется для конкретного сайта , можно установить его в соответствующий каталог public_html :
- Перейти в нужный каталог (вместо u и user укажите первую букву логина и сам логин):
cd /home/u/user/директория_сайта/public_html
- Скачать virtualenv , указав нужную версию Python:
wget https://bootstrap.pypa.io/virtualenv/X.X/virtualenv.pyz
Например, для Python 3.6:
wget https://bootstrap.pypa.io/virtualenv/3.6/virtualenv.pyz
- Создать виртуальное окружение, используя нужную версию Python . Например:
# Если требуется Python 3:
python3 virtualenv.pyz venv
# Если требуется Python 2:
python virtualenv.pyz venvПри этом будет создана директория venv, из которой будет запускаться виртуальное окружение (имя директории можно задать любое).
- Активировать виртуальное окружение (вместо u и user укажите первую букву логина и сам логин):
source /home/u/user/директория_сайта/public_html/venv/bin/activate
Далее вы можете приступить к установке библиотек с помощью pip . После отключить виртуальное окружение можно командой deactivate .
Использование PIP
PIP — система управления пакетами для установки и управления программными пакетами на Python.
Основные команды pip
# Установка пакета
pip install имя_пакета
# Обновление пакета
pip install -U имя_пакета
# Удаление пакета
pip uninstall имя_пакета — удаление пакета
# Вывод установленных пакетов
pip freeze
# Просмотр версии pip
pip --version
# Обновление pip
pip install -U pipФайл requirements.txt
Файл содержит вывод команды pip freeze и является списком зависимостей, которые необходимо установить в виртуальное окружение для работы приложения.
Пример содержимого requirements.txt :
asgiref==3.4.1
Django==3.2.7
pytz==2021.1
sqlparse==0.4.2
typing-extensions==3.10.0.2- Django — имя пакета;
- 3.2.7 — версия пакета.
Вместо обозначения == может встретиться >= , что означает версию равную или выше.
Восстановление виртуального окружения с помощью requirements.txt
С помощью requirements.txt можно выполнить рекурсивную установку пакетов. В этом случае нет необходимости устанавливать пакеты вручную.
Выполнить установку можно командой:
pip install -r requirements.txt
Возможные ошибки
No module named ‘имя_модуля’
Ошибка сообщает о том, что импортируемый в коде модуль не установлен. Пример сообщения в логе об ошибке:
plain.webtm.ru [Tue Jul 07 06:18:52 2020] [error] [pid 74988] src/server/wsgi_logger.c(147): [client 5.16.118.157:33342] import pygame
plain.webtm.ru [Tue Jul 07 06:18:52 2020] [error] [pid 74988] src/server/wsgi_logger.c(147): [client 5.16.118.157:33342] ModuleNotFoundError: No module named 'pygame'Если вы уверены, что модуль установлен, но ошибка все равно возникает, необходимо проверить корректность путей в файле index.wsgi и указать в скрипте корректный путь до интерпретатора Python.
Например, если виртуальное окружение было установлено в директорию /mysite/public_html , в начало скрипта необходимо добавить строку:
#!/home/u/user/mysite/public_html/venv/bin/python3.6
Также следует убедиться, что используется нужная версия пакетов или самого Python.
Target WSGI script ‘/путь/до/скрипта/index.wsgi’ cannot be loaded as Python module
Возникает при неправильной настройке файла index.wsgi .
Необходимо сверить файл с инструкциями по ссылкам: Django , Flask .
DisallowedHost at / Invalid HTTP_HOST header
Для устранения ошибки необходимо указать доменное имя в качестве переменной в файле /имя_проекта/settings.py , например:
ALLOWED_HOSTS = ['example.com']
Для работы сайта от любого домена нужно указать символ * :
ALLOWED_HOSTS = ['*']
AttributeError: module ‘MySQLdb.constants.FIELD_TYPE’ has no attribute ‘JSON’
Необходимо обновить mysqlclient командой:
pip install -U mysqlclient
The SECRET_KEY setting must not be empty
Нужно проверить корректность указанного имени модуля настроек в wsgi-скрипте или наличие SECRET_KEY в файле settings.py .
Пример сообщения об ошибке в логе:
Jan 28 02:12:27 vh328 apache_error[58945]: ce05390-django.tw1.ru [Thu Jan 28 02:12:27 2021] [error] [pid 35894] src/server/wsgi_logger.c(147): [client 188.163.65.63:37230] django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.