使用pyinstaller DLL加载编译的脚本失败

时间:2016-04-28 06:03:31

标签: python pyinstaller pycrypto

我已经使用pyinstaller编译了一个脚本并且编译得很好但是当我运行程序时,我在控制台窗口中收到以下错误。

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

当我收到此错误时,我正在尝试导入加密。为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

根据the pyinstaller manual

  

您可以使用Python的详细导入标记来验证隐藏导入是否存在问题。如果导入消息说"找不到模块",但是warnproject.txt文件没有"没有命名的模块......"对于同一模块的消息,则问题是隐藏导入。

     

隐藏导入是通过在Analysis时挂钩模块(执行隐藏导入的模块)来处理的。这样做如下:

     
      
  1. 创建一个名为hook-module.py的文件(其中module是完全限定的Python名称,例如hook-xml.dom.py)并将其放在某处。记住这个地方作为私人挂钩目录。

  2.   
  3. 在.spec文件中,将您的private hooks目录作为hookspath参数传递给Analysis,以便进行搜索。例如:

         

    a =分析([' myscript.py'],hookspath =' / my / priv / hooks')   在大多数情况下,钩子模块只有一行:

         

    hiddenimports = [' module1',' module2']   当Analysis找到此文件时,它将完全像模块显式导入module1和module2一样。

  4.   

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

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