February 9, 2021

Синергия сред для работы с одним проектом на Python

Как я не раз упоминал,  для работы с Python зачастую приходится использовать более одной среды  разработки. Здесь я расскажу, как корректно организовать совместную  работу двух крутых инструментов - PyCharm и Spyder.

Первым  делом создаем отдельную виртуальную среду для проекта, чтобы  изолировать его зависимости от базовой сборки. В качестве средства для  создания виртуальных сред буду использовать Anaconda (общий обзор  таких  инструментов делал ранее). Для этого достаточно набрать команду:

conda create --name имя_среды python=3.8

Это же можно сделать с использованием графических инструментов Anaconda (подробнее рассказывал здесь). По умолчанию виртуальная среда помещается в папку с относительным адресом anaconda3/envs.

Теперь, перейдем к созданию собственно проекта и организации совместной работы с ним PyCharm и Spyder.

Создадим  проект в Spyder. Для этого нажимаем "Projects"->"New Project" и выбираем папку для него.

После,  нажав "Tools"->"Preferences"->"Python Interpreter" > "Use the  following interpreter", задаем путь к интерпретатору в той виртуальной  среде, которую вы хотите использовать для проекта. Обычно имеет вид  путь_до_среды/bin/python (из активной виртуальной среды его можно  вывести, набрав: import sys; print(sys.executable)):

Следует  отметить, что при отсутствии в виртуальной среде библиотеки  spyder-kernels следует предварительно ее установить (для вывода списка  пакетов из активного виртуального окружения можно ввести pip list, еще удобнее в Linux отфильтровать вывод: pip list | grep 'spyder-kernels').

Теперь  настраиваем PyCharm для работы с тем же проектом. Жмем меню  "File"->"Open" и выбираем папку с созданным в Spyder проектом:

Затем  настраиваем интерпретатор. Заходим в  "File"->"Settings"->"Project"->"Python Interpreter", в правом  верхнем углу нажимаем на выпадающий список и выбираем "Show All":

В  появившемся окне жмем add (плюсик), и в уже новом окне выбираем  "Conda  Environment" (меню слева), а справа жмем переключатель на "Existing  environment" и в поле "Interpreter" выбираем путь до интерпретатора  (аналогичный тому, как в Spyder).

На  этом настройки завершаются. Теперь вы можете использовать плюсы для  работы в обеих средах разработки и, если одна капризничает, использовать  другую. Напомню, что с PyCharm в отличие от Spyder можно отлаживать  многопоточное и многопроцессорное приложение, эта среда имеет удобный  viewer объектов. К преимуществам  Spyder можно отнести возможность  работы в ipython с временными объектами в ходе отладки (подробнее о   настройке и преимуществах этих сред читай здесь). А какими инструментами разработки предпочитаете пользоваться вы?