Ну, я думал, что настроил свою среду 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 в качестве вашего переводчика, и этого недостаточно в моем случае.