【问题标题】:Importing the numpy c-extensions failed导入 numpy c-extensions 失败
【发布时间】:2020-03-11 02:31:41
【问题描述】:

导入 numpy c-extensions 失败

我在我的 Windows 系统上安装了 python 3.7 来处理 visual studio code。一切都很顺利,包括使用图书馆。 我使用控制面板中的卸载程序工具卸载了python。并安装了 Miniconda 3。 我检查了一切正常,然后在 windows 10 上的终端 GitBash 中使用 conda install numpy 安装了 numpy 库strong>,然后在我的visial studio代码上检查了它,但它无法启动。

重现代码示例:

import numpy as np
A = np.array([[-1], [7], [-26]])

错误信息:

Traceback(最近一次调用最后一次):文件 "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py", 第 17 行,在 从 。导入多数组文件“C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\multiarray.py”, 第 14 行,在 从 。导入覆盖文件“C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\overrides.py”, 第 7 行,在 from numpy.core._multiarray_umath import ( ImportError: DLL load failed: Не найден указанный модуль.

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件 “c:/Users/ramim/Desktop/22/Matrix library/alsf.py”,第 3 行,在 将 numpy 导入为 np 文件“C:\Users\ramim\Miniconda3\lib\site-packages\numpy__init__.py”,行 142, 在 从 。导入核心文件“C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py”, 第 47 行,在 引发 ImportError(msg) ImportError:

重要提示:请阅读本文以获取有关如何解决此问题的建议!

导入 numpy c 扩展失败。 - 尝试卸载并重新安装 numpy。 - 如果您已经这样做了,那么: 1. 检查您是否希望使用“C:\Users\ramim\Miniconda3\python.exe”中的 Python3.7, 并且您的 PATH 或 PYTHONPATH 中没有目录可以 干扰您尝试使用的 Python 和 numpy 版本“1.17.3”。 2. 如果 (1) 看起来不错,您可以在以下位置打开一个新问题 https://github.com/numpy/numpy/issues。请包括以下详细信息: - 你是如何安装 Python 的 - 你如何安装 numpy - 您的操作系统 - 无论您是否安装了多个 Python 版本 - 如果您从源代码构建,您的编译器版本和理想的构建日志

  • 如果您正在使用 numpy git 存储库,请尝试 git clean -xdf(删除所有不受版本控制的文件)并重建 numpy。

注意:这个错误有很多可能的原因,所以请不要评论 一个关于此的现有问题 - 改为打开一个新问题。

原始错误是:DLL 加载失败:Не найден указанный модуль。

Numpy/Python 版本信息:

Python 3.7.5 Numpy 1.17.3

我尝试再次卸载并安装 numpy 库,但没有用。 注意:当我在终端输入 conda install numpy 时,它会说:

已安装所有请求的软件包

这就是我检查 numpy 是否真的安装的方式!

如何解决?

【问题讨论】:

  • 在开始执行代码之前,您安装的 conda 环境是否激活?
  • 我遇到了同样的问题,而且似乎是 VS Code 问题。我可以从 anaconda 提示符运行我的代码,没有任何问题。 conda list 表示已安装。如果我发现问题会提交答案。

标签: python numpy visual-studio-code miniconda


【解决方案1】:

尝试先卸载numpy和setuptools:

  1. pip uninstall -y numpy

  2. pip uninstall -y setuptools

  3. pip install setuptools

  4. pip install numpy

从这里的 mehdiHadji 提供的解决方案中借用-https://github.com/ipython/ipyparallel/issues/349

【讨论】:

  • 这对我来说效果很好,但由于未知原因,我不得不重复两个卸载命令,因为安装了两个工具的两个版本。
  • 对我不起作用。
【解决方案2】:

不确定这在 Visual Studio 中是否也存在,但对于 Eclipse,我必须更改其中一个环境变量。

设置:Windows、Python 3.7、带有 numpy 的 Conda venv

解决方案:

CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1

对于 Eclipse,可以通过 Properties -> Run/Debug Settings -> Edit -> Environment 访问环境变量。

Anaconda 还记录了该修复程序,尽管是针对不同的问题: Conda Troubleshooting

【讨论】:

  • 这也是conda官网上的官方解决方案。我认为这应该是选定的答案。我在 VS Code 中遇到了这个问题,这解决了这个问题。
  • 这让我对 Numpy 感到非常痛苦。恕我直言,这应该是公认的答案。
  • 这个解决了我的问题。对于 Windows,在 anaconda 提示符下执行 setx CONDA_DLL_SEARCH_MODIFICATION_ENABLE 1setx 用于永久设置环境变量。如果您不想永久更改它,请使用 set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1 ,这仅适用于该会话。
  • 谢谢,我使用 GUI 将 CONDA_DLL_SEARCH_MODIFICATION_ENABLE 环境变量添加到 Windows 并将 Value 设置为 1 并且它起作用了。我认为这应该是正确的解决方案。
【解决方案3】:

此问题是由 VScode 默认终端 (powershell) 设置引起的, 要将VScode默认终端从powershell切换到cmd,conda env会正确激活,其他powershell会尝试调用conda activate xxxxxx会失败,然后后面的import numpy会失败。

所以有两种方法可以解决它:

  1. 修复powershell环境下路径搜索问题,让conda activate xxxxxx成功执行;

  2. 将 vs code 默认终端更改为“cmd”: 在 settings.json 中添加 "terminal.integrated.shell.windows": "C:\Windows\System32\cmd.exe"

【讨论】:

  • 这为我修好了!确实必须改变反冲:"terminal.integrated.shell.windows": "C:/Windows/System32/cmd.exe"
  • 在cmd中使用conda init为我解决了这个问题
【解决方案4】:

最近和我的问题类似。我在 Win 10 系统上使用 Miniconda 的 Python 3.8。我通过将默认终端从 PowerShell 更改为命令提示符解决了这个问题。

步骤:

  1. 按 Ctrl+Shift+P 或 F1 打开 VS Code 的命令面板菜单
  2. 选择“终端:选择默认配置文件”条目
  3. 然后选择“命令提示符”选项
  4. 重启 VS 代码

【讨论】:

  • 这对我来说非常有效!谢谢!
【解决方案5】:

我通过以下步骤解决了这个问题-

  1. 使用 conda 卸载 numpy 和 pandas
  2. 使用 pip 安装 numpy 和 pandas

【讨论】:

    【解决方案6】:

    我通过删除所有 numpy 版本解决了这个问题

    pip uninstall numpy
    pip3 uninstall numpy
    

    然后通过 apt-get 安装 numpy 和 libatlas-base-dev

    sudo apt-get remove python3-numpy
    sudo apt-get install libatlas-base-dev
    

    【讨论】:

      【解决方案7】:

      您的%PATH% 似乎有问题。它可能包含一些冲突,或者太长(> 2047 个字符)。尝试将带有 dll 的文件夹(从您尝试使用的环境中)添加到它的开头:

      PATH=C:\Users\ramim\Miniconda3\Library\bin;%PATH%
      python -c "import numpy"
      

      (基于this

      【讨论】:

        【解决方案8】:

        对于那些想知道为什么重新安装numpy 模块有效的人:

        如果您使用的是虚拟环境(例如在名为 env 的相对位置),请确保该文件夹不会进入其他平台,如 Docker,或您可能切换到的其他操作系统。

        请记住,numpy 所需的 Python 和 C 扩展的编译依赖于平台。因此,如果它在 Windows 中运行,它在使用相同虚拟环境(缓存模块)的 Linux 中将无法运行。

        例如,如果您在 Windows 上运行代码,然后尝试通过 Docker Desktop 在 Linux 容器上运行它,这一点尤其重要。 (确保env - 或任何你的虚拟环境被称为 - 被忽略而不是复制到容器中)

        【讨论】:

          【解决方案9】:

          此问题仍在进行中。我将 VS 代码与 conda venv 一起使用,并使用 MarineCoder 以类似的方式解决了它:

          • 除了 numpy 和 pandas,我还使用 conda uninstall 删除了 matplotlib
          • 谨慎使用pip install重新安装pandas和numpy

          在我的情况下,每当安装 matplotlib 包时都会出现错误,所以我要么删除它,要么降级它们三个。 numpy 依赖存在冲突。这篇文章中显示了另一个相关问题:

          I get `No module named _multiarray_umath` when using matplotlib

          【讨论】:

            【解决方案10】:

            就我而言,我必须在 VS 代码终端中手动“conda activate myenv”所需的环境。以前,我只需要从所需的环境中选择 python 版本,然后环境就会自动激活。这个答案引用并证实了 Brett Cannon 的上述评论,这是我想尝试的唯一原因。

            【讨论】:

              【解决方案11】:

              我通过 pip 重新安装 NumPy 解决了这个问题:

              pip install --upgrade --force-reinstall numpy
                               
              

              【讨论】:

                【解决方案12】:

                我遇到了同样的问题,并尝试了这里给出的几个解决方案,但没有一个对我有用。我查看了另一个论坛并能够解决问题(https://github.com/numpy/numpy/issues/13252):

                conda uninstall numpy

                pip3 install numpy.

                【讨论】:

                  【解决方案13】:

                  对于我的情况,我已经更新了我正在使用的 python 版本。运行 git clean -xdf 解决了这个问题。

                  我的系统:

                  • 操作系统:Mac OS 11.6
                  • Python:3.7.8 => 3.8.12
                  • Numpy:1.20.2
                  • 诗歌:1.1.6

                  【讨论】:

                    猜你喜欢
                    • 2020-04-14
                    • 2021-12-03
                    • 2021-03-29
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-11-13
                    • 2023-03-31
                    • 2021-03-20
                    相关资源
                    最近更新 更多