Python – ImportError: cannot import name X

Python – ImportError: cannot import name X

我正在尝试 运行 一个单一的 python 脚本——它在过去有效——使用几个模块。一些谷歌搜索建议循环依赖,但这仅与两个文件导入模块相关。

似乎归结为 scalarmath 没有找到,但我不知道为什么。我的代码只是用于计算的简单函数 defs,然后调用这些函数(全部在一个文件中)。

我的 IDE 的输出是:

C:\Users\sg15\AppData\Local\Continuum\Anaconda2\python.exe "P:/Solid State QT/NSMM/simulations/InteractionsOfTLF.py"
Traceback (most recent call last):
  File "P:/Solid State QT/NSMM/simulations/InteractionsOfTLF.py", line 13, in <module>
    import matplotlib.pyplot as plt
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\__init__.py", line 122, in <module>
    from matplotlib.cbook import is_string_like, mplDeprecation, dedent, get_label
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\cbook.py", line 33, in <module>
    import numpy as np
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\__init__.py", line 185, in <module>
    from . import add_newdocs
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
    from .type_check import *
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "C:\Users\sg15\AppData\Local\Continuum\Anaconda2\lib\site-packages\numpy\core\__init__.py", line 20, in <module>
    from . import scalarmath
ImportError: cannot import name scalarmath

Process finished with exit code 1

事实证明,解决方案是经典的卸载重新安装作业。这些软件包似乎与最近的 Windows 更新或软件包本身的更新不兼容。修复步骤(以备不时之需):

1) 运行 python 在单独的程序中,并尝试导入库 例如 import numpy。您仍然应该在问题中显示的图像中看到输出错误消息。这表明这不是我们代码的本地问题。关闭 python program/console/whatever.

2) 打开命令提示符 (cmd) 和 运行 conda(命令:conda)。然后 运行 命令 conda install numpyconda install matplotlib。对显示的任何选项单击是 [y]。当然,这些命令取决于哪些库给您带来了麻烦。

3) 在您的 python IDE 的控制台中,再次导入库 import numpyimport matplotlib。 运行 你的代码和你应该构建得很好(前提是你没有其他错误)

注意:您可能必须卸载在 Anaconda Navigator 的 conda 环境中给您带来麻烦的有问题的库。为此,select 你的 conda 环境(我的被称为 qutip)并删除麻烦的包。在这种情况下,它们是 matplotlibnumpy