“ImportError:无法导入名称 randbits”是什么意思?

Ban*_*nyM 23 python import numpy importerror python-3.x

我的 jupyter 笔记本的第一个单元格包含我要导入的库。由于某种原因,当我运行它时,它会收到ImportError: cannot import name randbits. 我以前从未见过此导入错误,并且已经尝试重新启动内核并确认所有库均已正确安装。有人以前见过这个并且知道如何处理这个错误吗?

import numpy as np
import pandas as pd
import requests
import xlsxwriter 
import math

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Input In [1], in <cell line: 1>()
----> 1 import numpy as np
      2 import pandas as pd
      3 import requests

File C:\pyver\py3.10.5\lib\site-packages\numpy\__init__.py:151, in <module>
    149 from . import fft
    150 from . import polynomial
--> 151 from . import random
    152 from . import ctypeslib
    153 from . import ma

File C:\pyver\py3.10.5\lib\site-packages\numpy\random\__init__.py:180, in <module>
    126 __all__ = [
    127     'beta',
    128     'binomial',
   (...)
    176     'zipf',
    177 ]
    179 # add these for module-freeze analysis (like PyInstaller)
--> 180 from . import _pickle
    181 from . import _common
    182 from . import _bounded_integers

File C:\pyver\py3.10.5\lib\site-packages\numpy\random\_pickle.py:1, in <module>
----> 1 from .mtrand import RandomState
      2 from ._philox import Philox
      3 from ._pcg64 import PCG64, PCG64DXSM

File mtrand.pyx:1, in init numpy.random.mtrand()

File bit_generator.pyx:38, in init numpy.random.bit_generator()

ImportError: cannot import name randbits
Run Code Online (Sandbox Code Playgroud)

小智 61

我一整天都遇到同样的问题。终于弄清楚是什么解决了我的问题。不知何故 anaconda3/Lib/secrets.py 被覆盖。Numpy 依赖于该目录中名为 random.py 和 Secrets.py 的文件,因此如果您有具有这些名称的文件,numpy 将不会加载。

  • 我重命名了错误的 Secrets.py 文件

  • 找到secrets.py源代码并重新创建该文件。解决了我的问题。

以下链接对我来说最有益:

对 numpy 有类似问题的人: https ://github.com/numpy/numpy/issues/14860

Secrets.py 源代码: https ://github.com/python/cpython/blob/3.7/Lib/secrets.py

  • 是的!我在我的项目中创建了一个“secrets.py”文件,这搞砸了。我希望 python 有一个名称空间冲突检测器。 (8认同)
  • 您的解决方案可以拯救生命!我上传了一个 Secrets.py 文件,删除该文件后它就起作用了。 (5认同)

小智 10

实际上,我添加了一个名为secrets.py我正在使用的文件夹的文件,这导致了问题。重命名文件后问题就消失了。