我已经通过conda安装了python,创建了一个新环境,安装了PyCharm并将其配置为使用这个环境。
当我在PyCharm中启动一个python控制台时,我受到了欢迎
C:\ Users \ 9973879 \ AppData \ Local \ Continuum \ miniconda3 \ envs \ foo \ lib \ site-packages \ IPython \ core \ history.py:226:UserWarning:IPython History需要SQLite,您的历史记录将不会被保存
事实上,如果我尝试import sqlite3
,我会得到一个
ImportError:DLL加载失败:找不到指定的模块。
然而Project Interpreters > Interpreter Paths
确实列出C:\Users\9973879\AppData\Local\Continuum\miniconda3\envs\foo\{DLLs, Lib, site-packages}
。此外,从命令行启动的python解释器导入此包 - 在同一个虚拟环境中 - 成功。
编辑
似乎问题来自PATH
环境变量。当调用conda activate foo
时,conda
在PATH
中添加了一堆文件夹,其中包含各种库(特别是sqlite3.dll
)。
当指向现有环境(或创建一个新环境)时,PyCharm会像之前指出的那样自动将文件夹添加到PYTHONPATH
,但似乎没有向PATH
添加任何内容。
我在调用conda activate foo
之后通过从命令行运行PyCharm来测试这个假设,并且它可以工作。当然,必须从特定的conda环境启动PyCharm并不是很好,因为我坚持这个特定的环境。
如何将PyCharm配置为像conda activate
那样自动更新环境?它不应该直接开箱即用吗?
这个问题似乎可以通过升级到最新的4.6.7版本的conda来解决。来自release notes的相关线可能是
- 在Windows上的cli主文件中将conda恢复为PATH(#8307)
我不确定为什么它会影响PyCharm而不是普通的python。
我通过将DLL添加到我的<path_to_environment> / DLLs位置来修复此问题