zoukankan      html  css  js  c++  java
  • 使用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")
    #这里可以直接访问资源文件目录
  • 相关阅读:
    VBScript学习笔记
    C#调用C++库知识点
    .Net面试经验,从北京到杭州
    杭州.Net 相关大公司,希望对大家有帮助
    一起学习《C#高级编程》3--运算符重载
    一起学习《C#高级编程》2--比较对象的相等性
    一起学习《C#高级编程》1--类型的安全性
    博客园的第一天
    基于SpringCloud+Kubernetes 微服务的容器化持续交付实战
    第一节:Docker学习 — 安装
  • 原文地址:https://www.cnblogs.com/ylsd80/p/10471936.html
Copyright © 2011-2022 走看看