用 py2exe 和 tkinter 制作的代码不起作用

Code made with py2exe and tkinter not working

我正在 python 迈出第一步。我使用许多库制作了一个有用的代码,现在我正在尝试使用 py2exe 将其制作为 .exe。

这个 exe 应该会打开一个用 tkinter 制作的界面,您可以在其中上传一些 csv 文件,然后它会以 PDF 格式打印(使用 pdfkit)

这是我的setup.py

# -*- coding: utf-8 -*-

import sys
from distutils.core import setup


includes = ['tkinter', 'shutil', 'os', 're', 'pandas', 'jinja2', 'io', 'pdfkit', 'base64', 'numpy', 'matplotlib', 'distutils']


opts = {
        'console' : [{
            'script'         : 'interfase.py',
            'description'    : 'Descripcion del programa.',
            'icon_resources' : [(0, 'myicon.ico')]
            }],
        'zipfile' : None,
        'options' : { 'py2exe' : {
            'includes': includes,
            'dll_excludes'   : ['w9xpopen.exe'],
            'bundle_files'   : 1,
            'compressed'     : True,
            'optimize'       : 2
            }},
         }

setup(
    options = opts
    )

我得到了这个 Traceback

Traceback (most recent call last):
  File "setup.py", line 30, in <module>
    options = opts
  File "C:\Users\Screspo\Anaconda3\lib\distutils\core.py", line 108, in setup
    _setup_distribution = dist = klass(attrs)
  File "C:\Users\Screspo\Anaconda3\lib\site-packages\py2exe\patch_distutils.py", line 81, in __init__
    distutils.dist.Distribution.__init__(self, attrs)
  File "C:\Users\Screspo\Anaconda3\lib\distutils\dist.py", line 251, in __init__
    for (opt, val) in cmd_options.items():
AttributeError: 'list' object has no attribute 'items'

有什么可能遗漏的线索吗?

提前致谢!

您需要删除 'console' 之后的第一个括号 []。

'console' : {
        'script'         : 'interfase.py',
        'description'    : 'Descripcion del programa.',
        'icon_resources' : [(0, 'myicon.ico')]
        },

如果出现错误“AttributeError: 'NoneType' object has no attribute 'items'”,则需要删除此行

'zipfile': None,