Python 从编译的exe运行py2exe ctypes dll时出错,但在使用解释器运行代码时出错
我正在使用py2exe编译和执行 当我测试像这样从cmd运行的代码时Python 从编译的exe运行py2exe ctypes dll时出错,但在使用解释器运行代码时出错,python,ctypes,py2exe,Python,Ctypes,Py2exe,我正在使用py2exe编译和执行 当我测试像这样从cmd运行的代码时 C:\wdir\mvl-tryton-client\tryton-3.2.3\bin>python tryton 它很好用 但当我在执行生成的安装后运行它时,我得到: Error DLL load failed: The specified procedure could not be found. File "tryton\common\common.pyc", line 1341, in process File
C:\wdir\mvl-tryton-client\tryton-3.2.3\bin>python tryton
它很好用
但当我在执行生成的安装后运行它时,我得到:
Error DLL load failed: The specified procedure could not be found.
File "tryton\common\common.pyc", line 1341, in process
File "tryton\gui\main.pyc", line 878, in _set_preferences
File "tryton\gui\main.pyc", line 1049, in sig_win_menu
File "tryton\gui\window\view_form\screen\screen.pyc", line 95, in __init__
File "tryton\gui\window\view_form\screen\screen.pyc", line 364, in switch_view
File "tryton\gui\window\view_form\screen\screen.pyc", line 384, in load_view_to_load
File "tryton\gui\window\view_form\screen\screen.pyc", line 397, in add_view_id
File "tryton\gui\window\view_form\screen\screen.pyc", line 425, in add_view
File "tryton\gui\window\view_form\view\widget_parse.pyc", line 4, in <module>
File "tryton\gui\window\view_form\view\form_gtk\__init__.pyc", line 3, in <module>
File "tryton\gui\window\view_form\view\form_gtk\parser.pyc", line 537, in <module>
File "tryton\gui\window\view_form\view\form_gtk\fingerprint.pyc", line 11, in <module>
File "tryton\gui\window\view_form\view\form_gtk\fpenroll.pyc", line 9, in <module>
File "ctypes\__init__.pyc", line 10, in <module>
File "_ctypes.pyc", line 12, in <module>
File "_ctypes.pyc", line 10, in __load
谢谢大家的评论。我解决了将ctypes和_ctypes包添加到includes in setup.py的问题,如下所示:
args['options'] = {
'py2exe': {
'optimize': 0,
'bundle_files': 3, # don't bundle because gtk doesn't support it
'packages': [
'encodings',
'gtk',
'pytz',
'atk',
'pango',
'pangocairo',
'gio',
'ctypes',
'_ctypes'
],
'dll_excludes': [ "mswsock.dll", "powrprof.dll" ]
}
}
这就是整个错误日志吗?找不到哪个dll\过程?我希望知道在哪里查找!。对这是完整的错误日志。您的问题表明py2exe已经包含了ctypes包(
\uuu init\uuu.pyc
),并包含了一个包装器,用于通过imp.load\u dynamic
加载提取的\ucTypes.pyd
扩展模块。现在还不清楚在包中添加名称会改变什么<代码>\u ctypes
甚至不是一个包。你问过名单上的这个吗?没有,我应该问吗?它顺利运行的唯一方法(在ctypes成为一项要求之后)是在Windows8中构建exe,并在Windows8中安装,而不是在其他任何地方。这里的一个是基于XP构建的(因为安装它的大多数计算机都使用XP),可以在所有平台上运行。哦,我还没有尝试只添加类型。但是只是ctypes也不起作用。
args['options'] = {
'py2exe': {
'optimize': 0,
'bundle_files': 3, # don't bundle because gtk doesn't support it
'packages': [
'encodings',
'gtk',
'pytz',
'atk',
'pango',
'pangocairo',
'gio',
'ctypes',
'_ctypes'
],
'dll_excludes': [ "mswsock.dll", "powrprof.dll" ]
}
}