Page tree

Виртуальное окружение virtualenv - это инструмент, позволяющий создавать изолированные среды для отдельных проектов Python, решая тем самым проблему зависимостей и совместимости приложений разных версий. Подробнее о виртуальном окружении Python можно прочитать в официальной документации.

После установки virtualenv вы можете использовать pip для установки библиотек Python.

В зависимости от ваших задач установку можно выполнить в домашнюю директорию или в директорию конкретного сайта. 

Версии Python

По умолчанию на наших серверах доступны версии Python2 и Python3.4, но вы также можете использовать версии Python3.5 или Python3.6 (последняя доступна только на отдельных серверах).

Разница вызова скрипта через разные версии заключается в вызове разных имен интерпретатора Python:

# Если требуется Python2:
python virtualenv-16.6.0/virtualenv.py ~/myenv

# Если требуется Python3.4:
python3 virtualenv-16.6.0/virtualenv.py ~/myenv
 
# Если требуется Python3.5:
python3.5 virtualenv-16.6.0/virtualenv.py ~/myenv
 
# Если требуется Python3.6:
python3.6 virtualenv-16.6.0/virtualenv.py ~/myenv

Обратите внимание, что в виртуальном окружении доступна только та версия Python3, которая была выбрана при создании виртуального окружения. Например, запустить скрипт через Python3.5 в виртуальном окружении, созданном через Python3.6, не получится:

(env) $ python3.5 --version
Command 'python3.5' not found

При этом Python2 будет доступен:

(env) $ python2 --version
Python 2.7.17

Проверить версию Python в созданном виртуальном окружении можно командой:

(env) $ python --version
Python 3.6.9


Установка в корень аккаунта

Установить одну из последних версий виртуального окружения в корень аккаунта можно по инструкции ниже:

1. Скачать и распаковать virtualenv:

wget https://files.pythonhosted.org/packages/53/c0/c7819f0bb2cf83e1b4b0d96c901b85191f598a7b534d297c2ef6dc80e2d3/virtualenv-16.6.0.tar.gz
tar xvfz virtualenv-16.6.0.tar.gz

2. Создать виртуальное окружение, используя нужную версию Python. Например:

# Если требуется Python3:
python3 virtualenv-16.6.0/virtualenv.py ~/myenv
 
# Если требуется Python2:
python virtualenv-16.6.0/virtualenv.py ~/myenv

При этом будет создана директория myenv, из которой будет запускаться виртуальное окружение (имя директории можно задать любое).

3. Активировать виртуальное окружение:

source ~/myenv/bin/activate

Далее вы можете приступить к установке библиотек с помощью pip. После отключить виртуальное окружение можно командой deactivate.

Установка в конкретный каталог

Если виртуальное окружение требуется для конкретного сайта, можно установить его в соответствующий каталог public_html:

1. Перейти в нужный каталог (вместо u и user укажите первую букву логина и сам логин):

cd /home/u/user/директория_сайта/public_html

2. Скачать и распаковать virtualenv:

wget https://files.pythonhosted.org/packages/53/c0/c7819f0bb2cf83e1b4b0d96c901b85191f598a7b534d297c2ef6dc80e2d3/virtualenv-16.6.0.tar.gz
tar xvfz virtualenv-16.6.0.tar.gz

3. Создать виртуальное окружение, используя нужную версию Python. Например:

# Если требуется Python3:
python3 virtualenv-16.6.0/virtualenv.py myenv
 
# Если требуется Python2:
python virtualenv-16.6.0/virtualenv.py myenv

При этом будет создана директория myenv, из которой будет запускаться виртуальное окружение (имя директории можно задать любое).

4. Активировать виртуальное окружение (вместо u и user укажите первую букву логина и сам логин):

source /home/u/user/директория_сайта/public_html/myenv/bin/activate

Далее вы можете приступить к установке библиотек с помощью pip. После отключить виртуальное окружение можно командой deactivate.

Проблема с импортом модулей

Если вы столкнулись с ошибками импорта модулей ("ImportError: No module named %module%'), необходимо указать в скрипте корректный путь до интерпретатора Python.

Например, если виртуальное окружение было установлено в директорию "mysite/public_html", в начало скрипта необходимо добавить строку:

#!/home/u/user/mysite/public_html/myenv/bin/python3.4
  • No labels