用 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,
我正在 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,