我正在使用python 2.7开发一个scrapy程序来从nhtsa.gov中删除数据。它在命令行中运行良好,但我想将其打包到单个文件应用程序中,因此我使用了pyinstaller。 Pyinstaller会创建一个应用程序文件,但在运行时会显示"致命错误! NHTSAscrape返回-1"。当我进入警告日志文件时,有一百个缺少的模块,我从未听说过的模块:
missing module named posix - imported by os
missing module named codecs.mbcs_encode - imported by codecs, encodings.mbcs
missing module named codecs.mbcs_decode - imported by codecs, encodings.mbcs
missing module named datetime.date - imported by datetime, _strptime,
missing module named 'six.moves.urllib' - imported by 'six.moves.urllib',
missing module named _xmlrpclib - imported by xmlrpclib,
missing module named twisted.version - imported by twisted, scrapy,
missing module named cStringIO.InputType - imported by cStringIO, twisted.python.compat, twisted.persisted.styles
missing module named cStringIO.OutputType - imported by cStringIO, twisted.python.compat, twisted.persisted.styles
missing module named 'urllib.parse' - imported by twisted.python.compat, lxml.html, twisted.web.http
......还有更多。我现在正在运行我的spec文件来创建应用程序,并尝试编辑" hiddenimports"并且"排除"领域,但这并没有真正改变任何事情。例如,如果我说
excludes=['posix','codecs','codecs.mbcs_encode']
警告日志文件与上面相同,但添加"排除模块posix"等等,但它似乎并没有真正排除模块。
必须有一种更简单的方法来处理所有这些缺失的模块,或者某些原因即使我的程序没有使用它们也会引用所有这些模块。
如果有兴趣,我可以发布完整的日志文件。思考?