Виртуальные окружения такие разные.

Оглавление

  1. Введение
  2. Исходные данные
  3. Консоль
  4. IDE PyCharm
  5. Завершение

Введение.

Часто бывает так, что при создании проекта в PyCharm не удаётся подключиться к созданному виртуальному окружению .virtualenvs через консоль.
Та же проблема возникает и при консольном режиме создании виртуального окружения - к нему не удаётся подключиться в PyCharm.

Сегодня, мы с вами правильно создадим виртуальное окружение и подключим его в PyCharm. Оно будет работать как через консоль, так и в самом IDE.

Однако, работать такой способ будет только на ОС Linux.

Для ОС Windows пользоваться виртуальным окружением отдельно от самого PyCharm не получится.

По крайней мере, мне, адекватно осуществить это так и не удалось.

Перейти к оглавлению.

Исходные данные

Для выполнения задачи я буду использовать временную папку: ~/002/

Однако, помните, что хранение и создание виртуальных окружений в базовых директориях может привести к выводу вашей системы из строя!
/; /home/; /home/<UserName>/;/boot/; /dev/; /etc/ и другие.
Лучше создайте для этого отдельную директорию и работайте только внутри неё!
Например: /mnt/temp/; /mnt/002/; /home/<UserName>/001/; /home/<UserName>/temp/ и другие.

Пусть папка с проектом будет называться просто: project

Виртуальные окружения будут храниться в отдельной под-директории: ~/002/project/.virtualenvs

Обратите внимание, что папку с проектом можно хранить почти в любой месте, а вот все виртуальные окружения лучше хранить либо в отдельной директории (так сказать центролизовано для данной системы), которая никогда не меняется, либо каждый раз создавать новую отдельную скрытую папку.
Последнее влияет только на ваше удобство работы.

Ну, например, в случае с данным примером исходных данных, директории «˜/002/project/.pycharm» и «˜/002/project/.virtualenvs», а также файлы «˜/002/project/.bashrc» и «˜/002/project/.pycharmrc», при создании GIT проекта обязательно необходимо исключить в файле .gitignore.

Перейти к оглавлению.

Консоль

Перейдём непосредственно к самим настройкам.

Первое что необходимо сделать - это создать определённый набор папок и файлов, с заданным содержимым.

Обратите внимание, что все пути прописываются не полными, а относительно домашней директории пользователя! Однако, вы можете прописывать их полными. Результат от этого не изменится. Просто строки с путями будут более длинными и сложными для вашего визуального восприятия.

$ cd ~/002/
$ mkdir -p project/{.virtualenvs,.pycharm} && cd project && ls -lha
# Последняя команда в конвеере только для проверки результата

Файл активирования виртуального окружения внутри PyCharm.

$ touch .pycharm/term-activate
$ echo "export PYCHARM_VENV=project-env" > .pycharm/term-activate

Создаём основной файл подключения консоли PyCharm.

$ nano .pycharmrc

# Содержимое файла .pycharmrc. Строки, на которые следует обратить внимание выделены зелёным цветом.
if [ -r "~/002/project/.pycharm/term-activate" ]; then
echo "Terminal activation hook detected."
echo "Loading Bash profile..."
source ~/002/project/.bashrc
echo "Activating terminal hook..."
source "~/002/project/.pycharm/term-activate"
source activate $PYCHARM_VENV
fi
wait
cd ~/002/project/

Создаём файл с переменными окружения для работы виртуального.

$ nano ~/002/project/.bashrc

export WORKON_HOME=$HOME/002/project/.virtualenvs
export PROJECT_HOME=$HOME/002/project/

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
# export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
if [[ -r `which virtualenvwrapper.sh` ]]; then source `which virtualenvwrapper.sh`; fi

клик для увеличения клик для увеличения клик для увеличения

Не забудьте создать самый простой файл main.py в корне проекта. В дальнейшем он понадобится при добавлении конфигурации запуска в PyCharm. Он нужен только для конфигураций Run/Debug в PyCharm. Однако, в этой же настройке указать можно любой файл запуска.

клик для увеличения

Только теперь переходим к созданию самого виртуального окружения и установки необходимых pip пакетов.

$ source .bashrc
$ lsvirtualenv
$ mkvirtualenv project-env
# У вас будут свои списки pip пикетов. Здесь они приведены только для примера
$ pip install numpy scipy matplotlib networkx altgraph pyinstaller pyinstaller-hooks-contrib PyQT5 PyQT5-sip PyQT5-QT PyQT5-QT5
$ clear
$ pip list

клик для увеличения

Теперь можно перейти к настройкам самого PyCharm.

Перейти к оглавлению.

IDE PyCharm

Добавляем проект - именно открываем его, указывая нашу папку без вложенных. Обязательно нажимаем кнопочку, что мы согласны открыть проект в режиме как есть - Trust Project.

~/002/project/

клик для увеличения клик для увеличения

Теперь откройте главное меню File -> Settings. Нас интересуют только разделы Python interpreter и Terminal.

Дело в том, что когда мы создавали виртуальное окружение, у нас в нашей скрытой под-директории (в данном случае ~/002/project/.virtualenvs/project-env/bin/) как бы, имеется отдельная версия интерпретатора. Да она ссылается на стандартную версию ( /usr/bin/python ), если вы не указывали другую. Однако, эта версия привязана к изменённому расположению пакетов вашего pip.

Дело в том, что в других IDE для Python ( например, sublime-text-3 ) в настройках именно за счет измененного расположения интерпретатора и привязок менеджера пакетов как раз и используется привязка плагинов к новому местоположению пакетов. Таким образом в них и работает автозавершение кода и нормальный запуск скриптов.

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

клик для увеличения клик для увеличения клик для увеличения

Теперь необходимо перейти в раздел Terminal и указать файл .pycharmrc, который отвечает за настройку виртуального окружения в самом PyCharm.

/bin/bash --rcfile ~/002/project/.pycharmrc

По окончании работы с проектом, не забудьте также и здесь очистить строку от лишних частей. Т.е. оставить только: /bin/bash

клик для увеличения

Базовая настройка завершена. Автозавершение кода уже должно подхватываться, а pip должен отвечать именно за наше виртуальное окружение.

Остаётся только проверить наши настройки и настроить запуск проекта ( Run/Debug ) на выполнение.

Ждём, когда IDE закончит индексирование пакетов и под-директорий, далее открываем закладку Terminal главного окна. Первое что мы должны увидеть - наше виртуальное окружение распозналась PyCharm-ом. При введении команды «pip list» мы должны увидеть только пакеты нашего виртуального окружения.

клик для увеличения

Далее в правой верхней части окна открываем «Run/Debug Configuration», добавляем наш main.py и выбираем интерпретатор. Рекомендую ставить Default. Вместо этого файла и названия конфигурации запуска можно указать любой другой файл проекта.

клик для увеличения

Снова переходим в терминал и если уже имеется файл с некой библиотекой - проверям и само виртуальное окружение внутри PyCharm.

клик для увеличения клик для увеличения

Перейти к оглавлению.

Завершение.

По окончании работы с проектом на главном окне, до запуска IDE, убрать проект из списка можно щелкнув по шестеренке справа от самого проекта.

клик для увеличения

Однако, это только уберет его из списка, но никак не удалить файлы и директории самого проекта.

клик для увеличения

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

клик для увеличения клик для увеличения клик для увеличения

По окончании работы с проектом, не забудьте также и очистить строку терминала от лишних частей. Т.е. оставить только: /bin/bash

клик для увеличения

Перейти к оглавлению.

Ну а сегодня на этом всё. Всем Добра и Удачи!

Copyright © 17.06.2022 by Mikhail Artamonov