2016-04-28 78 views
0

我用pyinstaller编译了一个脚本,它编译得很好,但是当我运行该程序时,在控制台窗口中出现以下错误。使用pyinstaller DLL加载失败编译的脚本

ImportError: DLL load failed: The specified module could not be found. 

我想导入Crypto,当我得到这个错误。为什么会发生这种情况,我该如何解决?

+0

可能重复的[Pyinstaller&Pycrypto](http://stackoverflow.com/questions/23233222/pyinstaller-pycrypto) – salomonderossi

回答

0

根据the pyinstaller manual

您可以验证隐藏的进口是通过使用Python的详细进口标志的问题。如果导入消息显示“module not found”,但warnproject.txt文件没有“no module named ...”消息,则说明该问题是隐藏导入。

隐藏的导入通过在分析时钩住模块(执行隐藏导入的模块)来处理。具体步骤如下:

  1. 创建一个名为hook-module.py文件(其中模块是完全合格的Python的名称,例如,hook-xml.dom.py)和地方放置。记住这个地方作为你的私人挂钩目录。

  2. 在.spec文件中,将您的私有钩子目录作为hookspath参数传递给Analysis,以便搜索。例如:

    一个=分析([ 'myscript.py'],hookspath = '/我/ PRIV /钩') 在大多数情况下,钩子模块将只有一个行:

    hiddenimports = [” module1','module2'] 当Analysis发现该文件时,它将按照模块明确导入module1和module2的方式进行。

This question似乎有关,答案也可能是对您有用。

最后,this report似乎也包含类似的问题。用户貌似能够通过更新到pyinstaller 2.1来修复它,所以如果你还没有尝试过,那么你可能需要尝试一下。

+0

我试过这个,但我仍然不知道隐藏的进口是什么,我需要。 – cdw100100