如何解决“集合”模块中找不到“nametuple”的问题?

2024-04-25 17:17:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行的是python3.7,我试图创建一个文件,作为登录页.py我做了,但当我运行运算符.py文件它给出了很多错误,但没有指定问题指定的一个问题是AttributeError:模块“collections”没有属性“namedtuple”

我试过在pycharm制造的环境中运行它 检查了所有可能的语法一切都很好 我试着在pything 2.2到3.6中运行,但没有运行

from kivy.uix.boxlayout import BoxLayout


class OperatorWindow(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)


class OperatorApp(App):
    def build(self):
        return OperatorWindow()


if __name__ == "__main__":
    oa = OperatorApp()
    oa.run()

#code ends here

Traceback (most recent call last):
  File "D:/OneDrive/Udemy/My own apps/pos/operator/operator.py", line 1, in <module>
    from kivy.app import App
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\site-packages\kivy\__init__.py", line 32, in <module>
    import shutil
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\shutil.py", line 10, in <module>
    import fnmatch
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\fnmatch.py", line 14, in <module>
    import re
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\re.py", line 125, in <module>
    import functools
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\functools.py", line 21, in <module>
    from collections import namedtuple
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\collections\__init__.py", line 21, in <module>
    from operator import itemgetter as _itemgetter, eq as _eq
  File "D:\OneDrive\Udemy\My own apps\pos\operator\operator.py", line 1, in <module>
    from kivy.app import App
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\site-packages\kivy\app.py", line 316, in <module>
    from inspect import getfile
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\inspect.py", line 35, in <module>
    import dis
  File "C:\Users\T\AppData\Local\Programs\Python\Python37-32\lib\dis.py", line 184, in <module>
    _Instruction = collections.namedtuple("_Instruction",
AttributeError: module 'collections' has no attribute 'namedtuple'

预期的结果是打开一个名为operator的窗口它将是空的,但它不会打开它

我把错误信息和上面的代码放在一起


Tags: infrompyimportliblocallineoperator
1条回答
网友
1楼 · 发布于 2024-04-25 17:17:56

调用模块operator不是一个好的选择。 它在标准库中隐藏一个模块。你知道吗

关键的困难在于import operator 现在不需要使用通常的函数。你知道吗

考虑一下把所有的东西都往下推一层, 因此您可以作为myapp.operator访问您的模块 而不仅仅是operator。 或者,您可以重命名为operator1.py, 或者重命名operator目录。你知道吗

相关问题 更多 >