PyCharm Venv
Часто бывает так, что при создании проекта в 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.
Добавляем проект - именно открываем его, указывая нашу папку без вложенных. Обязательно нажимаем кнопочку, что мы согласны открыть проект в режиме как есть - 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