使用Pyinstaller打包python成exe可执行文件

1、安装pyinstaller

pip install pyinstaller

2、使用pyinstaller生成spec打包配置文件,程序文件名称,getprocess.py

pyi-makespec getprocess.py

3、会自动在当前目录生成getprocess.spec文件

4、使用spec文件打包文件

pyinstaller.exe -F .\getprocess.spec

5、-F 参数将程序打包成1个独立exe文件,打包后的文件在当前目录的dict目录内,只需要分发exe文件,如果不加-F参数,分发软件时需要连同资源文件一起分发。

6、打包软件时增加资源文件,需要修改getprocess.spec内容,res为资源目录

使用spec文件时,请提供一个列表,将文件描述为datas=参数的值Analysis数据文件列表是元组列表。每个元组都有两个值,两个值都必须是字符串:

  • 第一个字符串指定现在在此系统中的文件。
  • 第二个指定在运行时包含文件文件夹的名称

 

7、参考:

#Pyinstaller如何将资源文件一起打包至exe中
#基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行#时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的#资源

#官方说明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation

#测试案例功能描述,访问资源文件夹res/a.txt,并打印其内容。实现方法如下:

#源码如下,比较简单,resource_path方法说明了如何使用sys._MEIPASS变量来访问临时文件夹中的资源

#coding:utf-8
import sys
import os

#生成资源文件目录访问路径
def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

currentpath = resource_path("res")
#这里可以直接访问资源文件目录

 

posted @ 2019-03-04 17:25  压力山大80  阅读(505)  评论(0编辑  收藏  举报