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

Posted

技术标签:

【中文标题】从 Conda 环境运行时,PyDev/Eclipse 未加载 _mklinit【英文标题】:PyDev/Eclipse not loading _mklinit when run from a Conda environment 【发布时间】:2019-07-25 05:54:32 【问题描述】:

我创建了一个 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 创建的环境时。

感谢您的帮助!

【问题讨论】:

这个运气好吗? 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

1.首先打开Anaconda Powershell Prompt并运行命令

conda activate (path where you have the anaconda environment)

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

a.在User变量Path中将路径改为

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

b.在系统变量中添加一个新变量 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】:

Here您可以找到与您的问题相关的 conda 故障排除页面部分,我认为非活动环境是这里的问题。

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

当前的 IDE 还不一定适应这种变化,我自己不能在 PyCharm 中使用集成的 Python 控制台,因为它会尝试在不事先激活环境的情况下运行它。显然这个问题应该在下一个版本中修复。

无论如何,如果你不能让你的 IDE 在运行任何命令之前激活 conda 环境,你只需要忍受使用普通终端,你可以确保环境处于活动状态。

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于从 Conda 环境运行时,PyDev/Eclipse 未加载 _mklinit的主要内容,如果未能解决你的问题,请参考以下文章

Spyder 无法在 conda 环境中加载 tensorflow,尽管 python 可以

使用 conda 进行全新 ubuntu 20.04 安装的 Segfault

windows下切换Python运行环境。

在 conda 环境中安装最新版本的 awswrangler 时遇到问题

如何在conda 环境中运行jupyter notebook

conda env 无法创建新环境