安装pyinstaller

如果使用了VirtualENV环境,则必须在要打包的项目环境中安装... 否则会找不到项目需求的包和模块

pip install -i https://pypi.douban.com/simple pyinstaller

pyinstaller相关参数

-F : 打包成单个可执行文件
-w : 打包之后运行程序,只有窗口不显示命令行
-c : 打包之后运行程序,显示命令行

注意 : 如果使用 -F参数,会导致程序无法正常读取外部的配置文件,也许是我配置问题.具体依据自己测试. -w-c不可以同时使用. 看解释就明白了.. 这俩冲突

打包命令

程序入口文件必须在项目根目录,要不貌似无法正常找到项目需求的模块什么的,也许是我设置问题,具体自行测试

# 打开CMD或者终端,切换到项目根目录
pyinstaller -w <程序入口文件名>.py

注意 : 打包过程中可能会报出一堆,找不到api-xxx-xxx-xx.dll之类的警告,我打包之后运行程序没问题... 这个也自行测试.

打包完成标志

项目目录下存在builddist<入口程序文件名>.spec
其中打包好的可执行程序在dist目录中就能看见, 其他;两个文件没什么卵用,可以直接删除.

使用WinRAR封装打包好的exe为安装包

快捷方式的图标.必须提前放在项目文件夹中,否则没办法在新建快捷方式的时候,显示图标

  • 第一步 : 全选所有文件,右键单击添加到压缩文件中

     
    添加到压缩文件.png
  • 第二步 : 勾选自解压选项和锁定压缩文件,并起一个高大上的名字

     
    配置自解压和压缩文件名.png
  • 第三步 : 选择高级选项卡,点击自解压文件选项

     
    自解压文件选项.png
  • 第四步 : 选择高级选项卡, 点击添加快捷方式

     
    点击添加快捷方式.png
  • 第五步 : 如下图配置快捷方式信息
     
    快捷方式信息.png

    注意 : 快捷方式的图标路径是相对路径,默认是项目的根路径,也就是你全选所有文件打包的位置, 参考上图中的图标设置方式,直接写的是项目根目录下的图标.ico. 快捷方式图标必须是ico文件.. 其他图标自己试验.

  • 第六步 : 切换到更新选项卡,覆盖方式,选择覆盖所有文件和解压并替换文件

     
    更新设置.png
  • 第七步 : 文本和图标设置,如下图设置对应信息

     
    文本和图标设置.png
  • 第八步 : 许可信息设置,如下图设置对应信息

     
    许可信息设置.png
  • 第九步 : 模块设置,如果程序不是64位,就选择第一个就好

     
    模块设置.png

结尾

建议打包后,自己安装一次试试看看能不能正常运行.
使用WinRAR打包的程序其实就是绿色程序, 没有注册表等信息
卸载的时候直接删除文件夹和对应的快捷方式就行

作者:含白
链接:https://www.jianshu.com/p/40a1977481cb
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Python打包项目为EXE程序的更多相关文章

  1. python打包py为exe程序:PyInstaller

    打包库:PyInstaller python程序编写过程中的脚本文件为py格式的文件,当我们想将编写好的程序移植到其他机器上给其他人使用时,如果目标机器没有安装python环境,py文件将无法运行,而 ...

  2. 【python】python打包生成的exe文件运行时提示缺少模块

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyin ...

  3. Autocad中使用命令来调用python对Autocad二次开发打包后的exe程序

    在Autocad中直接调用Python二次开发程序是有必要的,下面介绍一种方法来实现这个功能: 其基本思路是:先将二次开发的程序打包为可执行程序exe,然后编写lsp文件,该文件写入调用exe程序的语 ...

  4. 将Python打包成可执行文件exe的心路历程

    导言: 我们有时候需要将做好的Python程序打包成为一个exe , 方便我们使用,查找了资料发现 pyinstaller .py2exe,最后还是选择的pyinstaller,用的时候踩过了挺多的坑 ...

  5. 如何把Python脚本导出为exe程序

    一.pyinstaller简介 pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行 最新版是pyinstaller 3.1.1.支持python2.7和py ...

  6. Qt ------ window下工程项目打包成一个exe程序

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

  7. 4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)

    https://blog.csdn.net/windsnow1/article/details/78004265 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台win ...

  8. QT5的程序打包发布(将QT5的工程项目打包成一个exe程序)

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

  9. 使用PyInstaller打包Python角本为exe程序

    一.经过测试 在Windows平台请使用Windows平台的pyinstaller,Linux平台请使用Linux平台的Pyinstall角本. 二.命令如下: pyinstaller -F --ic ...

随机推荐

  1. git链接到远程github上

    Git链接到自己的Github(1)简单的开始 好长时间没上来弄东西了,今天回来先开始弄下Git,之后再继续写uboot与kernel的编译,在版本控制下更加宏观地观察每次的变化. 1.在ubuntu ...

  2. js中触摸相关变量touches,targetTouches和changedTouches的区别

    touches: 当前屏幕上所有触摸点的列表; targetTouches: 当前对象上所有触摸点的列表; changedTouches: 涉及当前事件的触摸点的列表 通过一个例子来区分一下触摸事件中 ...

  3. InnoDB中锁的算法(1)

    Ⅰ.InnoDB锁算法的介绍 首先明确一点,锁锁住的是什么?锁锁住的是索引 Record Lock 单个行记录上的锁 Gap Lock 锁定一个范围,但不包含记录本身 Next-key Lock Ga ...

  4. Spring Boot 入门day01

    一.Spring Boot入门 1.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...

  5. 执行git add .命令时报warning: LF will be replaced by CRLF in yarn.lock.

    解决办法是执行:git config --global core.autocrlf false 是符号 / 转义的问题

  6. linux iptables 防火墙简介

    iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非 ...

  7. Cartographer源码阅读(7):轨迹推算和位姿推算的原理

    其实也就是包括两个方面的内容:类似于运动模型的位姿估计和扫描匹配,因为需要计算速度,所以时间就有必要了! 1. PoseExtrapolator解决了IMU数据.里程计和位姿信息进行融合的问题. 该类 ...

  8. GIEC2019第六届全球互联网经济大会北京站震撼来袭!

    GIEC2019第六届全球互联网经济大会将于2019年8月26日-27日在北京召开,以“智慧零售数字商业”为主题,将邀请政府官员.企业高管.专家学者共议新形势下如何利人工智能和数字化的商业模式促进零售 ...

  9. 59.phpstudy升级Mysql的正确姿势

    phpstudy升级Mysql的正确姿势 phpstudy很糟心,不能选择mysql的版本,所以就强制升级. 下载mysql 首先要到官网上去下载你想要的mysql版本. 下载网址:Mysql官网地址 ...

  10. python多线程学习一

    本文希望达到的目标: 多线程的基本认识 多线程编程的模块和类的使用 Cpython的全局解释器锁GIL 一.多线程的基本认识 多线程编程的目的:并行处理子任务,大幅度地提升整个任务的效率. 线程就是运 ...