在Pycharm中设置非基础的conda环境

时间:2018-11-06 09:18:41

标签: python pycharm conda

好吧,我想我已经按照他们的docs的要求在Pycharm中设置了conda环境:

  • 设置>项目解释器>添加
  • 选择Conda环境
  • 检查现有环境
  • 浏览解释器路径(在本例中为C:\ProgramData\Anaconda2\envs\wps_env36\python.exe
  • 点击确定

我确实注意到了,但是在PyCharm的“终端”标签中并没有自动调用环境。因此,我遵循了this post,它似乎已经为终端设备进行了足够的设置(尽管我认为在选择上述环境时应该自动进行处理)。

现在令人困惑的部分:我试图在pycharm中的3个不同位置运行以下命令。它们是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提示/ pycharm终端中,已经定义了它们(因为它们源自C:\ProgramData\Anaconda2\etc\conda\activate.d中的批处理脚本,但未在我的主要anaconda python解释器中定义。

如何确保在Pycharm中将 entire conda环境定义为我的主要解释器。我在说完整的环境变量和其他我不知道的恶作剧?这些文档仅表明如何将conda设置为解释器,而就我而言,这还不够。

1 个答案:

答案 0 :(得分:0)

希望您在最近五个月内对它进行了整理,以防万一其他人陷入困境...

This answer介绍了如何在终端启动时通过将activate命令传递到cmd.exe来获取终端来激活conda环境:

  

转到文件->设置->工具->终端。

     

用cmd.exe“ / K”替换Shell路径中的值   C:\ path \ to \ Anaconda3 \ Scripts \ activate.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

时运行该脚本