python打包exe文件-ImportError: No module named 'queue'
2017-05-07 16:47
453 查看
Python提供多种方法把程序打包成在windows平台上直接运行的exe文件,比如py2exe,cx_Freeze,pyinstaller等。
我采用的是pyinstaller的方法:
1、用pip安装pyinstaller程序,pip install pyinstaller
2、查看pyinstaller是否安装成功,pyinstaller -h,部分显示结果如下
usage: pyinstaller-script.py [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data <SRC;DEST or SRC:DEST>]
[--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS]
[--exclude-module EXCLUDES] [--key KEY] [-d] [-s]
[--noupx] [-c] [-w]
[-i <FILE.ico or FILE.exe,ID or FILE.icns>]
[--version-file FILE] [-m <FILE or XML>]
[-r RESOURCE] [--uac-admin] [--uac-uiaccess]
[--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--distpath DIR] [--workpath WORKPATH] [-y]
[--upx-dir UPX_DIR] [-a] [--clean]
[--log-level LEVEL] [--upx UPX]
scriptname [scriptname ...]
positional arguments:
scriptname name of scriptfiles to be processed or exactly one
.spec-file
optional arguments:
3、打包python程序文件,pyinstaller -F /path/to/python_program.py
pyinstaller参数比较多,常见的比如-w ,作用是在运行打包后的exe文件时不会弹出dos窗口;--hidden-import MODULENAME,在打包过程中会屏蔽指定模块。
4、常见问题定位:
在打包完成后,有时候会出现窗口一闪而过,程序似乎并没有正常运行。这时候,我们可以在程序所在目录下打开cmd窗口,直接执行打包后的程序,运行结果就会显示在屏幕上,包括错误信息,而不会一闪而过。这时就可以根据具体错误来定位、解决问题。
我之前遇到的一个错误就是
File "site-packages\urllib3\packages\six.py", line 92, in __get__
File "site-packages\urllib3\packages\six.py", line 115, in _resolve
File "site-packages\urllib3\packages\six.py", line 82, in _import_module
ImportError: No module named 'queue'
Failed to execute script final_exam2然后自己手工导入queue模块,并没有报错。
在尝试重新打包并且使用--hidden-import queue 后,程序能够正常运行。
pyinstaller -F --hidden-import=queue final_exam2.py
具体原理暂时还不太清楚,先记录再此,后续有机会再好好研究pyinstaller的执行过程。
我采用的是pyinstaller的方法:
1、用pip安装pyinstaller程序,pip install pyinstaller
2、查看pyinstaller是否安装成功,pyinstaller -h,部分显示结果如下
usage: pyinstaller-script.py [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data <SRC;DEST or SRC:DEST>]
[--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
[--hidden-import MODULENAME]
[--additional-hooks-dir HOOKSPATH]
[--runtime-hook RUNTIME_HOOKS]
[--exclude-module EXCLUDES] [--key KEY] [-d] [-s]
[--noupx] [-c] [-w]
[-i <FILE.ico or FILE.exe,ID or FILE.icns>]
[--version-file FILE] [-m <FILE or XML>]
[-r RESOURCE] [--uac-admin] [--uac-uiaccess]
[--win-private-assemblies]
[--win-no-prefer-redirects]
[--osx-bundle-identifier BUNDLE_IDENTIFIER]
[--distpath DIR] [--workpath WORKPATH] [-y]
[--upx-dir UPX_DIR] [-a] [--clean]
[--log-level LEVEL] [--upx UPX]
scriptname [scriptname ...]
positional arguments:
scriptname name of scriptfiles to be processed or exactly one
.spec-file
optional arguments:
3、打包python程序文件,pyinstaller -F /path/to/python_program.py
pyinstaller参数比较多,常见的比如-w ,作用是在运行打包后的exe文件时不会弹出dos窗口;--hidden-import MODULENAME,在打包过程中会屏蔽指定模块。
4、常见问题定位:
在打包完成后,有时候会出现窗口一闪而过,程序似乎并没有正常运行。这时候,我们可以在程序所在目录下打开cmd窗口,直接执行打包后的程序,运行结果就会显示在屏幕上,包括错误信息,而不会一闪而过。这时就可以根据具体错误来定位、解决问题。
我之前遇到的一个错误就是
File "site-packages\urllib3\packages\six.py", line 92, in __get__
File "site-packages\urllib3\packages\six.py", line 115, in _resolve
File "site-packages\urllib3\packages\six.py", line 82, in _import_module
ImportError: No module named 'queue'
Failed to execute script final_exam2然后自己手工导入queue模块,并没有报错。
在尝试重新打包并且使用--hidden-import queue 后,程序能够正常运行。
pyinstaller -F --hidden-import=queue final_exam2.py
具体原理暂时还不太清楚,先记录再此,后续有机会再好好研究pyinstaller的执行过程。
相关文章推荐
- python打包exe文件-ImportError: No module named 'queue'
- pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!
- 命令行执行python文件时提示ImportError: No module named 'xxx'
- Python脚本打包为exe文件 推荐
- python中获取打包成执行文件(exe)和脚本运行文件的路径
- win7下用PyInstaller把Python代码打包成exe文件
- 在python中调用dll,并将dll以及python合并打包成一个exe文件的方法
- pyinstaller打包Python成为EXE文件,简易教程
- [Python]项目打包:5步将py文件打包成exe文件 简介
- Python脚本打包为exe文件
- 用pyinstaller把python源文件打包成exe可执行文件
- 利用PyInstaller把Python程序打包成exe可执行文件
- python生成exe文件报no module _mssql错误
- Python:程序发布方式简介一(打包为可执行文件EXE)
- 打包python脚本为exe可执行文件-pyinstaller和cx_freeze示例
- 用cx_Freeze把python打包成exe可执行文件
- windows7下使用py2exe把python打包程序为exe文件
- Python脚本打包为exe文件
- 把Python脚本打包成exe文件 ——py2exe使用小记
- 用cx_Freeze把python打包成exe可执行文件