哔哩哔哩上有视频教程
https://www.bilibili.com/video/BV1gh411Z7At

最终应用来到了打包阶段,这里坑点居多,因此拿出一节来记录一下我这两天的历程。我只能说没有解决不了的问题只有定义不清晰的问题,只要方向对了,问题会随着了解的加深而迎刃而解。

首先讲一讲pyinstaller的用法,在你想放置应用的文件夹下打开cmd,pyinstaller + 参数 +文件入口或打包定义文档。

-F:仅仅生成一个文件,不暴露其他信息,启动较慢。

-D:生成一个文件夹,里面是多文件模式,启动快。

-w:窗口模式打包,不显示控制台。

-c:跟图标路径,作为应用icon。

–hidden-import 应用需要的包,但是没有被打包进来,这里的错误是最多的,因为一般是第三方包隐式调用其他包,然后打包出来的程序显示Fate Error不能运行。

我用到的也就是这些了,还是讲讲流程。最开始是打包日志里报一些xxx module找不到,这些pip安装就行了,关于环境问题,我建议用python3.5,因为据说3.6容易打包失败。但是我用的一开始就是3.5,pyinstaller是3.4,pyqt5.9这都没有问题,解决完这些明面上的包,还是启动不了的话,就是隐式调用了一些包,我的是sklearn的一些包和pymysql的包隐式调用而我的程序里没导入所以一直启动不了,但是也不要什么都import * 那样会导致打出来的包很大。

这里是和百度学的,就是先默认打包,不用写参数,让错误信息打到控制台,但是有个问题,控制台闪了一下就退出了,看不清。这样就需要先录下来,再去看了,下面是我当时录下来的两个截图,可以看到就是包导入的问题,明确的问题所在,就可以改进了。

改进的手段是添加–hidden-import参数,可以看到我上一节的截图里有一个lvtonguilogic.spec文件,这个就是打包信息文件,这个文件会首先被创建出来,然后更新build文件夹和生成dist文件夹。

pyinstaller -F -w -i E:\lvtongEazyVersion\image\lvtong.ico .\lvtonguilogic.py,一开始不需要加入–hidden-import参数,我建议先生成spec文件,然后打开文件在里面进行编辑,如加入hiddenimports=[‘cython’,‘sklearn’,‘sklearn.ensemble’,‘sklearn.neighbors.typedefs’,‘sklearn.neighbors.quad_tree’,‘sklearn.tree._utils’,‘scipy._lib.messagestream’,‘pymysql’],最后,pyinstaller .\lvtonguilogic.spec,记得先删除原来的打包文件夹,不删除的话覆盖的时候可能显示无权限操作。这里还有一个小坑点,就是那个icon可能不会立刻显示,我打了好几遍都不管事,我是用的单文件打包的,最后把它粘贴出去就显示了,我觉得其实就是在dist文件夹下的显示问题。最后,可能有相对路径的资源会失效,我们新建一个文件夹,把资源放在对应的位置就好啦,如图。

---------------------
作者:王负剑!王负剑!
来源:CSDN
原文:https://blog.csdn.net/infent/article/details/84976312
版权声明:本文为作者原创文章,转载请附上博文链接!

[转]pyinstaller打包讲解 -F,-D,-w,-c,以及--hidden-import的用法相关推荐

  1. pyinstaller打包文件及warn文件中许多missing module 的解决方法

    python2.7下使用pyinstaller打包文件及warn文件中许多missing module 的解决方法 注:pyinstaller不属于python执行的包,需要在cmd命令行下使用. 1 ...

  2. python通过pyinstaller打包软件将GUI项目打包成exe文件

    此项目分为两步: GUI编写程序 pyinstaller打包软件 所用到的第三方库: tkinter pyinstaller 具体实现 1. GUI界面 本次主要讲解如何打包,所以在此只是设计一个十分 ...

  3. pyinstaller打包exe免杀和逆向浅析

    微信公众号:乌鸦安全 扫取二维码获取更多信息! 本文首发于先知,免杀跨度时间长.全文:11720字,110图,阅读时间预计:30分钟. https://xz.aliyun.com/t/10450 01 ...

  4. python3 pyinstaller 打包后执行文件运行错误 No such file or directory 和 Cannot load native module 解决方法

    目录 实例1.No such file or directory 错误  --add-binary 参数解决 实例2.Cannot load native module 错误 强制引入解决 总结 使用 ...

  5. exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序

    前言 本节我们学习如何使用Pyinstaller打包pyqt5应用程序,pyqt5的打包要比之前文章中讲述的tkinter的打包稍微复杂点,主要区别在于pyqt5打包需要导入Qt相关库,笔者开始打包时 ...

  6. python:使用PyInstaller打包成exe文件,以及TypeError: an integer is required (got type bytes)异常解决

    本文主要介绍安装pyinstaller教程与pyinstaller打包出现 TypeError: an integer is required (got type bytes)异常问题解决办法: 1. ...

  7. pyinstaller打包pyqt文件(转)

    pyinstaller打包pyqt文件 https://www.cnblogs.com/dcb3688/p/4211390.html 打包pyqt文件 如何将pyqt生成exe的二进制文件呢,pyin ...

  8. 使用pyinstaller打包pyqt程序

    2019独角兽企业重金招聘Python工程师标准>>> 首先声明我的开发环境是windows+anconda,pyqt使用的是anconda自带的,没有单独再安装pyqt,下面上py ...

  9. pyqt5能直接编译python吗_用PyInstaller打包用PyQt5编写的python程序

    0.背景 本弱初学PyQt5,写了一个GUI小程序,但在用PyInstaller打包时出现了不少问题,现将几个比较大的问题记录如下,希望以后能记住. 1. 资源打包 首先是资源打包的问题,我写的程序引 ...

最新文章

  1. python日历下拉框_Python版的农历日历Calendar,功能简单
  2. Java基础:由JVM内存模型详解线程安全
  3. Hi Azure. 从零开始打造一个语音机器人,跟你的电脑聊聊天。
  4. linux特殊权限位之setuid、setgid和sticky
  5. 感想篇:4)越来越精简的机械设计
  6. [pytorch] Pytorch入门
  7. 有关不蒜子访问统计无法显示的解决方法
  8. vue-cli(vue脚手架)搭建
  9. jQuery Mobile中可折叠块collapsed的data-*选项
  10. iOS 提交app到iTunes Connect预览截图截取方法及尺寸大小
  11. 《数据库系统基础教程》读书笔记——第二章 关系数据模型(1)
  12. 【HTML CSS JS 蝴蝶飞舞特效 绝美(附完整代码)】
  13. mysql事务的ACID原理
  14. i9500 android8,八核神器 三星Galaxy S4 I9500拆解
  15. [BZOJ1974][SDOI2010]代码拍卖会[插板法]
  16. 前沿重器[7] | 小布助手登顶百度千言短文本相似度的秘诀
  17. Spring mvc 中使用 kaptcha 验证码
  18. 基于UE -Traffic_ SINR – Statistics — 手机在线视频流量对业务速率、小区容量影响分析
  19. 一位资深HR的职场感言
  20. CodeLite可以媲美Code::Blocks

热门文章

  1. 洛谷 P3797 妖梦斩木棒 解题报告
  2. 科普OA系统知识:浅谈其带给企业的好处
  3. 大华-快时钟域到慢时钟域
  4. npm run serve命令出错:semi错误: 6:35 error Extra semicolon semi 7:46 error Extra semicolon semi
  5. EDID文件格式转换工具介绍
  6. 小白学python(opencv边缘保留滤波EPF)
  7. 为什么劝你不要学车?
  8. QPS、RPS、TPS、PV、UV、GMV、IP
  9. 什么是企业内容管理?
  10. wordpress表单数据验证_手拉手搭建 lnmp 环境及安装 wordpress