[英]py2exe ctypes dll load error when running from compiled exe but not when running code using the interpreter
我正在編譯並使用py2exe exe
當我像這樣測試從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 "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
我的猜測是setup.py中缺少某些配置,或者ctypes lib缺少路徑,但是我在文檔中找不到任何准確的信息。
任何幫助或提示,我們將不勝感激。 謝謝。 馬里亞諾
編輯:這是_ctypes.py。 我試圖打印名稱和路徑變量。 但是從cmd運行exe時,那里沒有輸出。
def __load():
import imp, os, sys
try:
dirname = os.path.dirname(__loader__.archive)
except NameError:
dirname = sys.prefix
path = os.path.join(dirname, '_ctypes.pyd')
#print "py2exe extension module", __name__, "->", path
mod = imp.load_dynamic(__name__, path)
## mod.frozen = 1
__load()
del __load
感謝您的評論。 我解決了將ctypes和_ctypes packagaes添加到setup.py中的include中,如下所示:
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" ]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.