window系统下发布:
一、安装pyinstaller
cmd安装命令:
pip install pyinstaller
#前提得安装了pip,如果未安装请先安装pip,如果提示需要pip更新,更新pip
二、python程序打包(不带参数)
文件命名规范:不支持中文命令的python文件;
路径:建议路径中不带中文目录;
命令:pyinstaller -F 文件名(带后缀py)
#命令语法:pyinstaller -F 文件名(带后缀py)
#常用参数说明:
#–icon=图标路径
#-F 打包成一个exe文件
#-w 使用窗口,无控制台
#-c 使用控制台,无窗口
#-D 创建一个目录,里面包含exe以及其他一些依赖性文件
#pyinstaller -h 来查看参数
#将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下:
#有命令窗口弹出
pyinstaller -F shjys_rjjqk.py
#无命令窗口弹出
pyinstaller -F -w shjys_rjjqk.py
#或者
pyinstaller -F shjys_rjjqk.py --noconsole
三、查看生成文件
四、pyinstaller 改变生成exe程序的图标
# my.ico 是一个图标名,和当前的shjys_rjjqk.py文件在同一个目录下
pyinstaller -F --icon=my.ico shjys_rjjqk.py
五、生成exe(带参数)
py中获取外界参数:
方法1:args 是运行前输入参数(不能在exe黑框中输入,可以用cmd窗口执行:shrjj.py 20180119);
方法2:input是运行时输入参数(可以在exe黑框中输入);
建议用input获取;
补充:方法一中的args参数(运行前输入参数)打包成exe,利用bat批处理来调用,传递参数;
注意:在有调用到外界配置文件的情况下,需要使用绝对路径;不然打包后,会出现找不到配置文件;
感谢原创的启蒙:
以下是个人使用当中的经验总结:
使用 pyinstaller -F shjys_rjjqk.py 打包出去之后,测试机出现错误如下:
---------------------------
twomonitor.exe - 无法找到入口
---------------------------
无法定位程序输入点 ucrtbase.terminate 于动态链接库 api-ms-win-crt-runtime-l1-1-0.dll 上。
---------------------------
确定
网上排查了很久都说要打什么补丁之类的,最后发现,在打包的时候有警告信息
类似:lib not found的问题
换一种打包方式:
pyinstaller -p C:\Windows\System32\downlevel --icon=icon.ico shjys_rjjqk.py
--icon=icon.ico #http://www.bitbug.net/ 处理的图片,然后放在shjys_rjjqk.py同目录下,如果使用 -i 我估计得使用路径,不行加个""
如果包含多个路径可以这样写:
pyinstaller -p C:\Windows\System32\downlevel;C:\Users\testing\Anaconda3\Lib\site-packages --icon=icon.ico shjys_rjjqk.py
这个时候打包出来的就不单单是一个exe可执行文件了
下次打包只需要执行pyinstaller -F test.spec