Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';列表';对象没有属性';项目';问_Python_Dictionary_Error Handling_Attributes_Cx Freeze - Fatal编程技术网

Python 属性错误:';列表';对象没有属性';项目';问

Python 属性错误:';列表';对象没有属性';项目';问,python,dictionary,error-handling,attributes,cx-freeze,Python,Dictionary,Error Handling,Attributes,Cx Freeze,我遇到了一个意想不到的错误。我意识到有些帖子有类似的错误,但要么无法理解答案,要么无法将其与我的案例(字典)联系起来 我试图为输入文件的每一行计算一个相似性分数,并在每次迭代(即输入文件的每一行)时将分数的前20个值存储在字典中 以下是我的代码: import sys from cx_Freeze import setup, Executable includefiles = ['Arcade Funk.mp3', 'game over.wav', 'FrogTown.wav','pixel

我遇到了一个意想不到的错误。我意识到有些帖子有类似的错误,但要么无法理解答案,要么无法将其与我的案例(字典)联系起来

我试图为输入文件的每一行计算一个相似性分数,并在每次迭代(即输入文件的每一行)时将分数的前20个值存储在字典中

以下是我的代码:

import sys
from cx_Freeze import setup, Executable

includefiles = ['Arcade Funk.mp3', 'game over.wav', 'FrogTown.wav','pixel ufo.png','introBackground.png','pixel playButton.png','pixel instructionButton.png','pixel playButtonHighlighted.png','pixel instructionButtonHighlighted.png','instructionPage.png','crashBackground.png','space background long.png','pixel earth.png','pixel asteroid.png', 'pixel icon.png','Montserrat-ExtraBold.otf','Montserrat-Bold.otf','arial.ttf']
includes = []
excludes = ['Tkinter']
packages = ['pygame']
build_exe_options = {'includes':[includes],'packages':[packages], 'excludes':[excludes], 'include_files':[includefiles]}

base = None
if sys.platform == 'win64':
    base = 'Win64GUI'
elif sys.platform == 'win32':
    base = 'Win32GUI'

setup(  name = 'Earth Invaders',
        version = '0.1',
        author = 'redacted',
        description = 'Slider Game: Space',
        options = {'build_exe': [build_exe_options]},
        executables = [Executable('EarthInvaders.py', base=base)]
)
这就是错误所在

Traceback (most recent call last):
   File "C:/Users/Vix_Ox/Desktop/Earth Invaders/setup.py", line 21, in <module>
executables = [Executable('EarthInvaders.py', base=base)]
  File "C:\Users\----\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs)
  File "C:\Users\----\AppData\Local\Programs\Python\Python36-32\lib\distutils\core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
  File "C:\Users\----\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\dist.py", line 24, in __init__
distutils.dist.Distribution.__init__(self, attrs)
  File "C:\Users\----\AppData\Local\Programs\Python\Python36-32\lib\distutils\dist.py", line 237, in __init__
for (opt, val) in cmd_options.items():
 AttributeError: 'list' object has no attribute 'items'
回溯(最近一次呼叫最后一次):
文件“C:/Users/Vix_-Ox/Desktop/Earth investors/setup.py”,第21行,在
可执行文件=[可执行文件('EarthInvestors.py',base=base)]
文件“C:\Users\---\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\cx\u Freeze\dist.py”,第349行,在设置中
distutils.core.setup(**attrs)
文件“C:\Users\---\AppData\Local\Programs\Python\Python36-32\lib\distutils\core.py”,第108行,在安装程序中
_设置\u分布=dist=klass(属性)
文件“C:\Users\---\AppData\Local\Programs\Python\Python36-32\lib\site packages\cx\u Freeze\dist.py”,第24行,在\uu init中__
distutils.dist.Distribution.\uuuu init\uuuuu(self,attrs)
文件“C:\Users\----AppData\Local\Programs\Python\Python36-32\lib\distutils\dist.py”,第237行,在\uuu init中__
对于cmd_options.items()中的(opt,val):
AttributeError:“列表”对象没有属性“项”

看起来你一直在很好地跟踪

我认为问题在于第20行有一些额外的方括号:
[build\u exe\u options]
应该是
build\u exe\u options
。该变量应该是一个字典,但它得到了一个列表,因此出现了错误

setup(  name = 'Earth Invaders',
        version = '0.1',
        author = 'redacted',
        description = 'Slider Game: Space',
        options = {'build_exe': build_exe_options},
        executables = [Executable('EarthInvaders.py', base=base)]
)
您还可能会发现,您必须将这一点追溯到前面的一行,因为它们在声明时已经封装在列表中:

build_exe_options = {'includes':includes,'packages':packages, 'excludes':excludes, 'include_files':includefiles}
另请参见中的设置,以获取有关您的外观的示例。(其设置方式与您的类似)