从Conda环境运行时,PyDev / Eclipse无法加载_mklinit

时间:2019-03-03 22:33:08

标签: python eclipse pydev conda

我创建了一个conda环境-testenv2-安装了python / numpy / pandas。将其添加为Eclipse项目设置中的解释器,并使用它运行我的测试python脚本。我收到以下错误。当我激活conda环境并在其中运行时,从命令行使用相同的测试脚本即可正常工作。它也可以在PyCharm中使用。但是以某种方式无法在Eclipse中启动。

Traceback (most recent call last):
  File "C:\Data\projects\eclipse-workspace\PythonEclipse\Test.py", line 1, in <module>
    import numpy as np
  File "C:\Data\devtools\Anaconda3\envs\testenv2\lib\site-packages\numpy\__init__.py", line 140, in <module>
    from . import _distributor_init
  File "C:\Data\devtools\Anaconda3\envs\testenv2\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
    from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.

如果我只是使用根Conda Python解释器运行相同的测试脚本,则可以正常工作。因此,只有当我尝试使用从conda创建的环境时。

感谢您的帮助!

5 个答案:

答案 0 :(得分:2)

我必须将以下内容放入我的路径环境变量中:E:\ program \ Anaconda3 \ Library \ bin,否则我遇到了同样的问题。

答案 1 :(得分:0)

Here,您可以在疑难解答页面上找到与您的问题相关的conda的部分,我认为这里的问题在于非活动环境。

使用最新的conda版本,开发人员决定,在执行环境中的任何操作时,需要确保环境被激活,而不是用其路径污染环境变量,否则将找不到所需的DLL之类的东西。

当前的IDE并不一定适应这种变化,我本人无法在PyCharm中使用集成的Python控制台,因为它试图在不预先激活环境的情况下运行它。显然,该问题应在下一发行版中解决。

无论如何,如果您无法在运行任何命令之前使IDE激活conda环境,则只需要使用普通终端即可确保环境处于活动状态。

答案 2 :(得分:0)

CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1添加到您的环境变量中。

对于VSCode,无论是工作区文件夹中的.env文件还是launch.json中的"env"键都可以解决问题。

来源:https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy-mkl-library-load-failed

答案 3 :(得分:0)

1。首先打开Anaconda Powershell提示符并运行命令

conda activate (path where you have the anaconda environment)

2。然后打开系统->高级系统设置->环境变量

a。在用户变量Path中将路径更改为

(path where you have the anaconda environment)Library\bin

b。在System变量中添加一个新变量PYTHONPATH并将其路径指定为

(path where you have the anaconda environment)\Lib;(path where you have the anaconda environment)\DLLs;(path where you have the anaconda environment)\Lib\lib-tk;(Drive where you have the anaconda environment)\other-folders-on-the-path

3.eclipse关闭并再次运行

答案 4 :(得分:0)

在环境变量路径中添加DLL位置(C:\ Programs \ Python \ Python35 \ DLLs)。这对我有用。