导入 numpy 的 c 扩展失败
导入 numpy 的 c 扩展失败
导入numpy的c扩展失败
我在我的Windows系统上安装了Python 3.7来使用Visual Studio Code进行工作。一切都很顺利,包括使用库。
我使用控制面板中的卸载程序工具卸载了Python,并安装了Miniconda 3。
我检查了一切都正常,然后在我的终端GitBash上使用conda install numpy安装了numpy库,然后在我的Visual Studio Code上进行了检查,但启动失败了。
代码示例:
import numpy as np A = np.array([[-1], [7], [-26]])
错误信息:
Traceback (most recent call last): File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py", line 17, in from . import multiarray File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\multiarray.py", line 14, in from . import overrides File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core\overrides.py", line 7, in from numpy.core._multiarray_umath import ( ImportError: DLL load failed: 找不到指定的模块。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:/Users/ramim/Desktop/22/Matrix library/alsf.py", line 3, in import numpy as np File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy__init__.py", line 142, in from . import core File "C:\Users\ramim\Miniconda3\lib\site-packages\numpy\core__init__.py", line 47, in raise ImportError(msg) ImportError: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! Importing the numpy c-extensions failed. - Try uninstalling and reinstalling numpy. - If you have already done that, then: 1. Check that you expected to use Python3.7 from "C:\Users\ramim\Miniconda3\python.exe", and that you have no directories in your PATH or PYTHONPATH that can interfere with the Python and numpy version "1.17.3" you're trying to use. 2. If (1) looks fine, you can open a new issue at https://github.com/numpy/numpy/issues. Please include details on: - how you installed Python - how you installed numpy - your operating system - whether or not you have multiple versions of Python installed - if you built from source, your compiler versions and ideally a build log
- If you're working with a numpy git repository, try [apcode]
git clean -xdf
(removes all files not under version control) and rebuild numpy.
Note: this error has many possible causes, so please don't comment on
an existing issue about this - open a new one instead.
Original error was: DLL load failed: 找不到指定的模块。
[/apcode]
Numpy/Python版本信息:
Python 3.7.5
Numpy 1.17.3
我尝试卸载和重新安装numpy库,但没有用。
注意:当我在终端中输入conda install numpy时,它会显示:
All requested packages already installed
这是我检查numpy是否真正安装的方式!
如何解决这个问题?
问题原因:在使用Python 3.8通过Miniconda在Windows 10系统上时,导入numpy c-extensions失败。问题的解决方法是将默认终端从PowerShell更改为命令提示符。
解决方法:
1. 使用快捷键Ctrl+Shift+P或F1打开VS Code的命令面板菜单。
2. 选择"Terminal: Select Default Profile"选项。
3. 选择"Command Prompt"选项。
4. 重新启动VS Code。
这个方法对我来说完全有效!谢谢!
我不得不关闭所有旧的终端会话,以便使用默认设置创建一个新的终端。
这个方法适用于在Windows 11上使用Python 3.8在VSCode中的情况。谢谢!
问题的原因:导入numpy的C扩展失败。
解决方法:尝试先卸载numpy和setuptools,然后重新安装。
具体步骤如下:
- 卸载numpy:运行
pip uninstall -y numpy
- 卸载setuptools:运行
pip uninstall -y setuptools
- 安装setuptools:运行
pip install setuptools
- 安装numpy:运行
pip install numpy
这个解决方法是从mehdiHadji在https://github.com/ipython/ipyparallel/issues/349提供的解决方案中借鉴的。
作者表示,这个方法对他来说很有效,但由于未知的原因,他不得不重复两次卸载命令,因为两个工具的两个版本都被安装了。
值得一提的是,这个方法在homebrew M1安装上也有效。
问题原因:导入numpy c扩展失败。
解决方法:更改环境变量CONDA_DLL_SEARCH_MODIFICATION_ENABLE的值为1。
具体步骤:
1. 在Eclipse中,通过 "Properties -> Run/Debug Settings -> Edit -> Environment" 进入环境变量设置;
2. 将CONDA_DLL_SEARCH_MODIFICATION_ENABLE设置为1;
3. 可以参考Anaconda官方文档中的解决方法,链接:Conda Troubleshooting;
4. 在Anaconda命令行中执行命令 "setx CONDA_DLL_SEARCH_MODIFICATION_ENABLE 1",如果不想永久更改,可以使用命令 "set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1",该设置只在当前会话中有效;
5. 在Windows中使用GUI添加CONDA_DLL_SEARCH_MODIFICATION_ENABLE环境变量,将值设为1。
此方法也适用于Intellij/PyCharm。