我制作了一个使用潜意识的 GUI 应用程序。然后我尝试使用 PyInstaller 编译程序。当我运行exe时,它给了我以下错误:-
Traceback (most recent call last):
File "main.py", line 375, in <module>
File "main.py", line 144, in __init__
File "site-packages\dogpile\cache\region.py", line 237, in configure
File "site-packages\dogpile\cache\backends\file.py", line 158, in __init__
File "site-packages\dogpile\cache\backends\file.py", line 182, in _init_dbm_file
File "dbm\__init__.py", line 75, in open
ImportError: no dbm clone found; tried ['dbm.gnu', 'dbm.ndbm', 'dbm.dumb']
Failed to execute script main
在此之后,我尝试在我的应用程序中显式导入 dbm,如下所示:-
import dbm
。但这也给出了同样的错误。
然后我尝试了import dbm.gnu , dbm.ndbm , dbm.dumb
。这给出了另一个错误,如下所示:-
Traceback (most recent call last):
File "main.py", line 3, in <module>
File "c:\program files\python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "userinterface.py", line 312, in <module>
File "c:\program files\python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "main.py", line 9, in <module>
File "c:\program files\python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
exec(bytecode, module.__dict__)
File "dbm\ndbm.py", line 3, in <module>
ImportError: No module named '_dbm'
Failed to execute script main
一些谷歌搜索,我发现它使用来自 dbm.gdbm 的 _dbm 包。所以代替import dbm.gnu , dbm.ndbm , dbm.dumb
, 我用import dbm.dumb
.
令人惊讶的是,这样做启动了我的应用程序。但是潜意识现在没有找到任何字幕。所以现在完全没用了。
我做错了什么。什么是解决这个问题的正确方法。在编译时,我也尝试过--hidden-import dbm
没有运气的捐赠。
这是我用来使用 pyinstaller 编译的命令:-
pyinstaller main.py --hidden-import dbm --hidden-import dogpile.cache.backends.file --additional-hooks-dir=. --add-data guessit;guessit --add-data babelfish;babelfish -i vid2.ico -n Subtitler
我将不胜感激任何线索或帮助:)