先上spec文件配置好后的全部代码。后面详细讲解!
官方详细文档请参阅链接

# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['hello.py'],pathex=['D:\\Company\\project\\untitled','D:\\Company'],binaries=[( '/usr/lib/libiodbc.2.dylib', '.' )],datas=[('image/*.png','data/image'),('pdf/*.pdf','data/pdf')],hiddenimports=['sklearn.utils._typedefs'],hookspath=[],runtime_hooks=[],excludes=['PyQt5'],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
exe = EXE(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,[],name='hello',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=False )

项目路径

D:\Company为主目录,下面有2个文件夹project和util
project目录下放了项目文件untitled
util目录下放自己写的库/模板

0. a里面的script

['hello.py']

main文件入口,或者你执行文件的时候要执行多少个python文件,那就写几个,比如pyinstaller hello.py hello2.py,会依次去执行

1. a里面的pathex

pathex=['D:\\Company\\project\\untitled','D:\\Company'],

意思是项目需要从什么地方导入自定义库

# hello.py文件
from mypath.util import module1  # 从D:\\Company\\project\\untitled找到mypath文件夹下面的util下面的module1
from util.module2 import *  # 从D:\\Company目录下的util找到module2

2. a里面的datas

项目需要用到什么数据,比如图片,视频等。里面格式为tuple,第一个参数是文件路径,第二个是打包后所在的路径。
下面的代码意思就是,把image下面的所有以png结尾的文件打包到exe所在目录下的data/image目录下。把pdf目录下的test.pdf文件打包到exe所在目录的data/pdf目录下。

datas=[('image/*.png','data/image'),                        ('pdf/test.pdf','data/pdf')
],

3. a里面的hiddenimports

hiddenimports=['sklearn.utils._typedefs'
],

官方解释

Normally PyInstaller learns about .so and .dll libraries by analyzing the imported modules. Sometimes it is not clear that a module is imported; in that case you use a --hidden-import command option. But even that might not find all dependencies.

假如打包后打开exe显示module not found,就要把该库添加到hiddenimports里面了。

4. a里面的binaries

动态库

binaries=[( '/usr/lib/libiodbc.2.dylib', '.' )],

5. a里面的excludes

excludes=['PyQt5']

假如你用的python有很多库,但是你不需要用到某个,那么就把它添加到里面去,比如很多人没有用到PyQt5, pandas

pyinstaller spec文件详解相关推荐

  1. 【收藏】RPM包制作和spec文件详解

    1.How to create an RPM package/zh-cn https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh- ...

  2. RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  3. linux rqm包制作 spec文件详解

    看这篇文章的人基本都有一个想法,就是:"不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,其 ...

  4. linux spec 脚本,RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  5. Linux中/proc目录下文件详解

    Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...

  6. Mybatis复习笔记3:映射文件详解

    映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...

  7. Android - Manifest 文件 详解

    Manifest 文件 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/20899281 Manifest可以定义应用程序及其 ...

  8. javaweb web.xml文件详解

    web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...

  9. oracle控制文件都一样么,Oracle控制文件详解

    一.Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 ...

  10. linux /proc目录文件详解

    Linux中/proc目录下文件详解(一) /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令proc ...

最新文章

  1. javaScript的DOM(一)
  2. 遗传算法详解(GA)
  3. VS清除打开项目时的TFS版本控制提示
  4. 类的赋值运算符的重载函数
  5. STM32F103中文参考手册之时钟树
  6. 9.6分神作又出续集,这是成年人最不敢直视的现实
  7. (4)ISE14.7 ChipScope使用流程(FPGA不积跬步101)
  8. Docker修改容器系统时间命令组
  9. Git_自定义Git
  10. Windows 7(server 2008) 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
  11. 数据库实时同步技术解决方案
  12. K60学习笔记一:PORT端口
  13. Phase2 Day14 Collections RedBlackTree
  14. qlistview 自定义控件,是否可以在QListView中添加自定义窗口小部件?
  15. Python面向对象加强1.关于经典类、新式类和property详解
  16. 短信接入程序,短信接入平台,彩信接入程序,移动短信接入软件,移动彩信接入平台模块
  17. 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
  18. 2022-06-29 AndroidR 获取接近传感器Proximity Sensor的信号,休眠和唤醒。
  19. Java是什么?Java的特点有哪些?
  20. 交叉线、直通线、反转线的区别与应用

热门文章

  1. MFCC和语谱图的关系
  2. 苹果笔记本什么系统_怎么把苹果笔记本系统改为win7系统?
  3. nuxt整合vue-pdf插件和使用createLoadingTask方法进行分页
  4. 计算机网络 谢希仁版 部分知识点(未写完,更新中)
  5. 在代码里设置view的android:layout_marginTop
  6. 5大国外广告联盟赚美金项目,诱人的美金在向你招手!
  7. 组织的目的是使平凡的人做出不平凡的事 --- 彼得.德鲁克 《卓有成效的管理者》
  8. 解决element 表单验证不通过的俩大坑
  9. 各大电商历史价格json后端接口
  10. drwxr-xr-x是啥意思