【问题标题】:Setting up non-Basis conda environment in Pycharm在 Pycharm 中设置非 Basis conda 环境
【发布时间】:2019-04-09 16:02:52
【问题描述】:

好吧,我以为我已经在 Pycharm 中设置了我的 conda 环境,就像他们的 docs 要求一样:

  • 设置 > 项目解释器 > 添加
  • 选择 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 中将 整个 conda 环境定义为我的主要解释器。我说的是环境变量和我不知道的任何其他恶作剧?文档仅说明如何将 conda 设置为解释器,在我的情况下这还不够。

【问题讨论】:

    标签: python pycharm conda


    【解决方案1】:

    希望您在过去五个月内解决了问题,但以防其他人陷入困境......

    This answer 解释了如何通过在终端启动时将 activate 命令传递给 cmd.exe 来让 终端 激活 conda 环境:

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

    将 Shell 路径中的值替换为 cmd.exe "/K" C:\path\to\Anaconda3\Scripts\activate.bat your_environment_name.

    我发现使 控制台 正常工作的唯一可靠方法是从激活的环境中启动 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 &amp;&amp; bash edit.sh

    【讨论】:

    • 答案链接中断,在这种情况下,您的答案将毫无价值。您可以在答案中包含相关信息吗?谢谢
    • @hat - 抱歉 - 认为这可能被视为抄袭。现在更新了!
    • 只要注明出处就可以了。所以答案在 CC BY-SA 4.0
    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2018-09-15
    • 2021-08-17
    • 2019-07-31
    相关资源
    最近更新 更多