【发布时间】:2019-02-18 21:17:23
【问题描述】:
我没有在 cx_Freeze 的安装文件中找到有关此问题的特定主题。
我正在尝试为我的程序创建一个 exe,但 distutils 的某些内容并不正确。我无法找到此库的更新 whl,因此我不确定是否有已知的修复方法。
程序运行良好,没有错误。
有谁知道为什么会出现这个问题。
请注意,我无法在我的工作网络中使用pip,因此我必须使用whl、tar.gz' 和egg 文件来安装库。
这就是为什么我试图为distutils 找到更新的whl 文件。
我的 setup.py 文件。
from cx_Freeze import setup, Executable
base = None
build_exe_options = {'packages': ['idna',
'json',
'tkinter',
'operator',
'clipboard',
'matplotlib',
'tkinter.ttk ',
'matplotlib.pyplot',
'matplotlib.backends.backend_tkagg'],
'include_files': ['tracker1.json', 'tracker2.json']}
setup(
name='<NAME>',
options={'build.exe': build_exe_options},
version='<0.2>',
description='<some random desc>',
executables=[Executable('MAIN.py', base=base)]
)
错误:
"C:\Users\user_name\Desktop\Python 3.6.2\python.exe" "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pycharm\pycharm_setup_runner.py" "C:\Users\user_name\Desktop\Python Work Projects\GATE\setup.py"
Testing started at 2:55 PM ...
Traceback (most recent call last):
running pycharm_test
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pycharm\pycharm_setup_runner.py", line 26, in <module>
exec (fh.read(), globals(), locals())
File "<string>", line 21, in <module>
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs)
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\distutils\dist.py", line 972, in run_command
cmd_obj = self.get_command_obj(command)
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\distutils\dist.py", line 847, in get_command_obj
cmd_obj = self.command_obj[command] = klass(self)
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\site-packages\setuptools\__init__.py", line 147, in __init__
_Command.__init__(self, dist)
File "C:\Users\user_name\Desktop\Python 3.6.2\lib\distutils\cmd.py", line 57, in __init__
raise TypeError("dist must be a Distribution instance")
TypeError: dist must be a Distribution instance
【问题讨论】:
-
您使用的是哪个版本的
cx_Freeze? -
您实际运行哪个命令来调用设置脚本?还有一件事:
options字典键应该是'build_exe',而不是'build.exe'。 -
@jpeg 嘿,感谢 cmets。我之前使用过 build.exe,它运行良好。此外,我正在使用来自 PyPi 站点的最新发布版本 cx_Freeze 5.1.1。有一个预发布版本,但我倾向于只使用完整版本以避免出现问题。
-
就使用
build.exe而言:根据我的尝试,可以毫无错误地调用设置脚本,但在没有选项传递给@987654336 的意义上它不起作用然后@命令。就使用cx_Freeze5.1.1 而言,这很好。我之所以问,是因为cx_Freeze5.0.1 引入了 Python 3.6 支持,如果您使用的是早期版本,那可能是与cx_Freeze的兼容性问题。 -
你为什么坚持使用
matplotlib标签?我真的没有看到你的问题的相关性。
标签: python matplotlib cx-freeze