首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复pyinstaller中的no dbm克隆查找错误

如何修复pyinstaller中的no dbm克隆查找错误
EN

Stack Overflow用户
提问于 2017-08-14 08:10:22
回答 1查看 533关注 0票数 1

我已经做了一个GUI应用程序,在其中使用潜意识。然后,我尝试使用PyInstaller编译程序。当我运行exe时,它会给出以下错误:

代码语言:javascript
复制
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。这会产生另一个错误,如下所示:

代码语言:javascript
复制
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.gdbm包。因此,我没有使用import dbm.gnu , dbm.ndbm , dbm.dumb,而是使用了import dbm.dumb

令人惊讶的是,这样做启动了我的应用程序。但潜意识现在找不到任何副标题。所以现在完全没用了。

我做错了什么。解决这个问题的正确方法是什么?在编译过程中,我也尝试给--hidden-import dbm一点运气也没有。

下面是我使用pyinstaller编译的命令:-

代码语言:javascript
复制
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

如有任何线索或帮助,我将不胜感激:)

EN

回答 1

Stack Overflow用户

发布于 2017-08-20 16:25:10

我发现,在_dbm包中,只能在类似UNIX的系统中工作。

在摆弄了它之后终于修好了。

在您的主要python文件中,只需使用以下导入:-

代码语言:javascript
复制
import dbm.dump
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45670104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档