700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > pyinstaller打包py文件生成的exe报错Failed to execute script

pyinstaller打包py文件生成的exe报错Failed to execute script

时间:2021-03-06 01:31:02

相关推荐

pyinstaller打包py文件生成的exe报错Failed to execute script

版权声明:转载请注明作者(独孤尚良dugushangliang)出处:/dugushangliang/article/details/100761976

时常觉得pyinstaller的打包很玄幻,不一定成功了失败了,平常也是绕着走,遇到问题束手无策。

本次打包,导入了两个:re/socket。

直接打包后生成的exe文件报错Failed to execute script。

我怎么打包的呢?

参阅/dugushangliang/article/details/81983168

pyinstaller --onefile fa.py -w

打包时cmd所在文件夹中会有build文件夹,其内只有一个同名于打包py文件名的文件夹,这个文件夹内会有一个warn开头的后面名字同名于py文件的txt文件,打开这个txt文件,如下:

This file lists modules PyInstaller was not able to find. This does notnecessarily mean this module is required for running you program. Python andPython 3rd-party packages include a lot of conditional or optional module. Forexample the module 'ntpath' only exists on Windows, whereas the module'posixpath' only exists on Posix systems.Types if import:* top-level: imported at the top-level - look at these first* conditional: imported within an if-statement* delayed: imported from within a function* optional: imported within a try-except-statementIMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis foryourself tracking down the missing module. Thanks!missing module named resource - imported by posix (top-level), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named posix - imported by os (conditional, optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named _posixsubprocess - imported by subprocess (conditional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named clr - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.console.ironpython_console (top-level), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named IronPythonConsole - imported by pyreadline.console.ironpython_console (top-level), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named StringIO - imported by pyreadline.py3k_compat (conditional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named System - imported by pyreadline.clipboard.ironpython_clipboard (top-level), pyreadline.keysyms.ironpython_keysyms (top-level), pyreadline.console.ironpython_console (top-level), pyreadline.rlmain (conditional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named sets - imported by mon (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named startup - imported by mon (conditional), pyreadline.keysyms.keysyms (conditional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named console - imported by pyreadline.console.ansi (conditional), C:\Users\idea\Desktop\73socketTCP.py (top-level)excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named _winreg - imported by platform (delayed, optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named _scproxy - imported by urllib.request (conditional)missing module named java - imported by platform (delayed), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named 'java.lang' - imported by platform (delayed, optional), C:\Users\idea\Desktop\73socketTCP.py (top-level), xml.sax._exceptions (conditional)missing module named vms_lib - imported by platform (delayed, conditional, optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named termios - imported by tty (top-level), C:\Users\idea\Desktop\73socketTCP.py (top-level), getpass (optional)missing module named grp - imported by shutil (optional), tarfile (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named org - imported by pickle (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level)missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), http.server (delayed, optional), webbrowser (delayed), C:\Users\idea\Desktop\73socketTCP.py (top-level), netrc (delayed, conditional), getpass (delayed)missing module named 'org.python' - imported by copy (optional), C:\Users\idea\Desktop\73socketTCP.py (top-level), xml.sax (delayed, conditional)

于是我试图寻找这些module在哪里,然而徒劳无功。事实上,即使打包成功的可以正常使用的,也会有类似内容。

百思不得其解,又在网上查询相关情况,结合本例实际,有如下怀疑:

1.参阅/question/53717334,导入的包的版本较高,pyinstaller不支持。

2.参阅/p/fe9ee823501c,pyinstaller找不到需要导入的包。

3.参阅/nodchen/p/9672141.html,pyinstaller参数的问题。

我首先想到的是,先不导入任何包,用pyinstaller进行打包,试试看效果,再逐次导入包试着打包看看效果以便于定位到是哪个包导致的问题。

一次偶然,发现了问题所在,证实本例所遇到的问题如3的参阅一样,是参数的问题。

本例的关键,在于socket需要使用命令行,-w则是表明打包后不执行命令行。我的偶然即是打包的时候忘记了-w结果打包成功了。参阅/dugushangliang/article/details/100762354

若是其他情况,则逐步分析。我之前有导入pandas出现打包失败的问题。后续若有时间再行探究。

独孤尚良dugushangliang——著

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。