Pyinstaller 打包发布经验总结

yizhihongxing

打包发布Python程序是开发中必不可少的一环,而Pyinstaller是一个十分优秀的打包工具,它可将Python代码打包成一个可执行的文件,方便在其他环境中运行。本文将介绍在Windows环境下如何使用Pyinstaller进行打包发布。以下是具体步骤:

安装Pyinstaller

pip install pyinstaller

打包发布

1. 单文件发布

打包为单个exe文件,执行以下命令:

pyinstaller -F your_program.py

执行完命令后,会在当前目录下生成一个名为your_program.exe的可执行文件,其中your_program.py为你要打包的Python代码文件名。

说明:

-F参数表示生成单个可执行文件。

2. 文件目录发布

打包为文件夹,执行以下命令:

pyinstaller your_program.py

执行完命令后,会在当前目录下生成一个名为dist的文件夹,其中包含可执行文件和相关的依赖文件。

说明:

默认情况下,Pyinstaller会将所有依赖的库一起打包到生成的可执行文件中,如果要排除某个库,可以使用--exclude参数。

例如,排除npyscreen库:

pyinstaller --exclude npyscreen your_program.py

3. 添加图标

在生成的可执行文件上添加图标,执行以下命令:

pyinstaller -F -i your_icon.ico your_program.py

说明:

-i参数表示添加图标,其中your_icon.ico为你要添加的图标文件名。

Pyinstaller打包经验总结

  1. 打包时间长,需耐心等待。
  2. 打包后程序体积较大,可能超过几十MB。
  3. 如果程序依赖库较多,可能会出现打包失败或打包后的程序无法运行的情况。
  4. 可以使用--debug参数来调试打包时出现的问题。
  5. 可以通过指定Python版本进行打包,例如:
pyinstaller --name your_program --clean --onedir --distpath ./dist --specpath ./build --add-data "resource;resource" --hidden-import sklearn.metrics _version.py
--additional-hooks-dir ./script --workpath ./build --debug --log-level DEBUG --log-level WARN --log-level INFO your_program.py

该命令使用Python3.7版本进行打包,其中--name参数表示指定打包后的可执行文件名,--add-data参数表示添加资源文件,--hidden-import参数表示指定需要导入的库。

示例1

以下是一个示例Python代码,功能为读取指定目录下的所有图片文件,并将它们进行压缩处理。

import os
from PIL import Image

def compress_images(input_dir, output_dir, max_size):
    for root, dirs, files in os.walk(input_dir):
        for filename in files:
            if not filename.endswith('.jpg') and not filename.endswith('.png'):
                continue
            filepath = os.path.join(root, filename)
            output_path = os.path.join(output_dir, filename)
            if os.path.isfile(output_path):
                continue
            with Image.open(filepath) as img:
                width, height = img.size
                while os.path.getsize(filepath) > max_size:
                    img.thumbnail((width // 2, height // 2))
                    img.save(output_path)
            print(f'{filename} compressed to {os.path.getsize(output_path)} bytes.')

接下来我们使用Pyinstaller将其打包成单个exe可执行文件。

pyinstaller -F compress_images.py

执行完命令后,在当前目录下生成名为compress_images.exe的可执行文件。

示例2

以下是另一个示例Python代码,功能为使用selenium模拟浏览器自动登录网站并抓取数据。

from selenium import webdriver

url = 'https://www.example.com'
username = 'username'
password = 'password'

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
driver.get(url)

# 输入用户名和密码
driver.find_element_by_id('username').send_keys(username)
driver.find_element_by_id('password').send_keys(password)

# 点击登录按钮
driver.find_element_by_id('login_btn').click()

# 等待页面加载完成
driver.implicitly_wait(10)

# 抓取数据
data = driver.find_elements_by_xpath('//div[@class="content"]/text()')

# 输出数据
print(data)

# 关闭浏览器
driver.quit()

接下来我们使用Pyinstaller将其打包成文件夹。

pyinstaller login.py

执行完命令后,在当前目录下生成一个名为dist的文件夹,其中包含可执行文件和相关的依赖文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pyinstaller 打包发布经验总结 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • pandas 小数位数 精度的处理方法

    下面是关于“pandas小数位数精度的处理方法”的完整攻略。 1. pandas浮点数默认情况下的小数位数 在pandas中,浮点数默认情况下是会自动四舍五入到六位小数。比如下面的代码: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(3, 3) * 1000)…

    python 2023年5月14日
    00
  • 如何在Pandas中删除第一行

    在 Pandas 中删除 DataFrame 中的第一行可以通过以下步骤实现: 导入 Pandas 库 在代码的开头,需要导入 Pandas 库: import pandas as pd 读取数据 需要读取需要删除第一行的 DataFrame 数据。可以从 CSV 文件、Excel 文件等格式中读取数据。 例如,读取一个名为 data.csv 的 CSV 文…

    python-answer 2023年3月27日
    00
  • springboot整合单机缓存ehcache的实现

    下面是关于“springboot整合单机缓存ehcache的实现”的完整攻略。 1、什么是Ehcache Ehcache是一个开源的、基于Java的、容易使用的缓存管理系统。它可以用于加速应用程序的性能和管理大量数据。 Ehcache提供了多种缓存的策略,包括最近最少使用(LRU)、最少使用(LFU)、FIFO等。Ehcache旨在为Java应用程序提供高速…

    python 2023年5月14日
    00
  • 如何使用另一个数据框架的索引来选择一个数据框架的行

    要使用另一个数据框架的索引来选择一个数据框架的行,可以使用isin()方法和布尔索引。具体步骤如下: 准备两个数据框架。在本例中,我们将使用以下两个数据框架: import pandas as pd df1 = pd.DataFrame({‘A’: [‘foo’, ‘bar’, ‘baz’, ‘qux’], ‘B’: [1, 2, 3, 4], ‘C’: […

    python-answer 2023年3月27日
    00
  • Python机器学习三大件之二pandas

    Python机器学习三大件之二pandas 一、Pandas Pandas是一个强大的数据分析库,它广泛应用于数据清洗、数据分析、数据可视化等领域。它是Python机器学习三大件之一。在数据分析过程中,我们常常需要做数据清洗、处理缺失值、合并数据、分组聚合、时间序列处理等各种操作,而Pandas可以帮助我们更加高效地完成这些操作。Pandas主要提供了两种数…

    python 2023年5月14日
    00
  • Python基础之教你怎么在M1系统上使用pandas

    Python是一门功能强大、易于学习的编程语言,经常被用于数据分析、数据处理以及科学计算等领域。其中,pandas是Python数据分析的重要工具之一,它能够高效地处理包含结构化数据的大型数据集。 随着Apple M1芯片的问世,越来越多的用户选择了使用Mac电脑,并且也会遇到在M1系统上使用pandas的问题。在本文中,我将为您提供一份详细的教程,帮助您在…

    python 2023年5月14日
    00
  • Pandas 使用制表符分离器将数据框架转为CSV文件

    导入 Pandas 库 在转换数据框架为 CSV 文件之前需要先导入 Pandas 库,代码如下: import pandas as pd 创建数据框架 为了演示数据框架如何转换为 CSV 文件,我们需要先创建一个实例数据。这里我们创建一个包含学生信息的数据框架,包含姓名、年龄、性别、所属班级、成绩等信息。 # 创建数据框架 df = pd.DataFram…

    python-answer 2023年3月27日
    00
  • pandas使用函数批量处理数据(map、apply、applymap)

    pandas使用函数批量处理数据(map、apply、applymap) 简介 在数据分析中,常常需要对数据进行批量处理,比如对某些列进行函数操作、对整个数据集替换某些值、对某些列进行条件替换等。在pandas中,有三个函数来进行批量处理:map、apply和applymap。 map函数 map函数应用于series类型的数据,可以对数据中每个元素应用相同…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部