Настройка неосновной среды conda в Pycharm - PullRequest
0 голосов
/ 06 ноября 2018

Ну, я думал, что настроил свою среду conda в Pycharm так же, как их документы требуют:

  • Настройки> Интерпретатор проекта> Добавить
  • Выбор среды Conda
  • Проверка существующей среды
  • Поиск пути интерпретатора (в данном случае C:\ProgramData\Anaconda2\envs\wps_env36\python.exe)
  • Нажмите ОК

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

Теперь запутанная часть: я пытался запустить следующее в 3 разных местах в pycharm. Это 1) обычный скрипт, 2) консоль Python и 3) терминал (выполнив python и принудительно переведя его в режим интерпретатора Python`:

import os
print(os.environ['CONDA_PREFIX'])

Для случаев 1) и 2) я получаю следующую ошибку:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\ProgramData\Anaconda2\envs\wps_env36\lib\os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'CONDA_PREFIX'

Для случая 3) он работает нормально и выводит путь для среды conda:

C:\ProgramData\Anaconda2\envs\wps_env36

Это указывает на то, что хотя для запуска интерпретатора используется правильное значение python.exe, необходимые переменные среды не передаются автоматически. Мне нужны эти переменные для выполнения дополнительных действий, и я думаю, что вышеизложенное объясняет, почему я должен добавить следующие переменные среды в мои конфигурации сборки:

GDAL_DATA PROJ_LIB

В обычном терминале anaconda prompt / pycharm они уже определены (поскольку они происходят из пакетных сценариев в C:\ProgramData\Anaconda2\etc\conda\activate.d, но они не определены в моем основном интерпретаторе anaconda python.

Как мне убедиться, что среда вся conda определена в Pycharm как мой основной интерпретатор. Я говорю в комплекте с переменными среды и любых других махинаций, о которых я не знаю? Документы только показывают, как вы можете установить conda в качестве вашего переводчика, и этого недостаточно в моем случае.

1 Ответ

0 голосов
/ 04 марта 2019

Надеюсь, вы разобрались с этим за последние пять месяцев, но на случай, если кто-то еще застрянет ...

Этот ответ объясняет, как заставить терминал активировать среду conda, передав команду активации в cmd.exe при запуске терминала:

Перейдите в Файл -> Настройки -> Инструменты -> Терминал.

Заменить значение в пути Shell на cmd.exe "/ K" C: \ path \ to \ Anaconda3 \ Scripts \ activ.bat your_environment_name.

Pycharm terminal config

Единственный надежный способ заставить консоль работать правильно - это запуск PyCharm из активированной среды. Из командной строки Windows:

activate my-env-name && pycharm64.exe & 
#the trailing '&' causes pycharm to run in the background rather than freezing the terminal

Или из git-bash:

source activate my-env-name && pycharm64.exe &

Где my-env-name - название вашей среды conda.

Обратите внимание, что если вы установили 32-битную версию, вам нужно поменять pycharm64.exe на pycharm.exe

Вы можете сделать это немного более повторяемым, создав файл "edit.sh" в вашем проекте:

#!/bin/sh
source activate my-env-name && pycharm64.exe &

И затем запустить этот скрипт, когда вы хотите запустить свой проект cd my-project && bash edit.sh

...