python-55-打包exe执行

这篇具有很好参考价值的文章主要介绍了python-55-打包exe执行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

你是否有这种烦恼?

  • 他人在使用你的项目、工具时可能只需关注使用,但还需要安装各种依赖包?
  • 共用服务机器环境,偶尔被他人改了依赖包版本,导致运行不起来?
  • 换台机器环境又得安装一遍环境依赖?

我会发现每次搞这些都要耗费一大堆时间,于是想到以前也有编译打包可执行文件,如Windows exe文件直接执行。

一、简介 PyInstaller

PyInstaller是一个用于将Python程序转换为独立的可执行文件的工具。使用PyInstaller,您可以将Python程序编译打包为单个可执行文件,该文件可以在没有Python解释器的计算机上运行,但是它不是交叉编译器,既不能夸操作系统编译打包,比如Windows只能编译打包为exe,不能编译为Linux、mac等操作系统。

官方文档:https://pyinstaller.org/en/stable

以下是使用PyInstaller将Python程序编译打包为可执行文件的基本步骤:

1、确保已经安装了PyInstaller。如果没有安装,可以使用以下命令进行安装:

pip install pyinstaller

2、打开终端或命令提示符,并导航到包含您的Python程序的目录。

3、运行以下命令来将Python程序打包为可执行文件:

pyinstaller your_script.py

其中your_script.py是您的Python程序的文件名。

4、PyInstaller将在当前目录中创建一个名为dist的文件夹,其中包含生成的可执行文件。在Windows上,可执行文件将具有.exe扩展名,而在Linux和Mac上则没有扩展名。
python-55-打包exe执行,python3,python,开发语言,windows
5、pyinstaller 命令部分简介

pyinstaller --help
  • -F:将所有文件打包为一个单独的可执行文件(意思是所有依赖)。
  • -D:将所有文件打包为一个目录,包含可执行文件和所有依赖的文件。
  • -c:将程序与命令提示符结合在一起,以便在命令提示符下运行。
  • -d:将调试信息打包进可执行文件中。
  • –onefile:将所有文件打包为一个单独的可执行文件。
  • -o:指定输出文件的位置。
  • -w:打包为窗口文件。
  • -i:指定ico。

我最常用的为:

pyinstaller -F -i xxx.ico xxx.py

二、实践 demo

1、script.py

while 1:
    word = input("请输入需要打印的字符:")
    print(word)
    if word.lower() == 'q':
        break

2、ico
可以自行找一个

3、运行命令

pyinstaller -F -i ./script.ico script.py

python-55-打包exe执行,python3,python,开发语言,windows
4、运行可执行文件 Windows
由于是Windows下编译打包,则为exe,直接双击运行。
python-55-打包exe执行,python3,python,开发语言,windows
5、运行可执行文件 Linux
Linux打包命令也是一致的。

./script

python-55-打包exe执行,python3,python,开发语言,windows


三、编译打包踩坑

pyinstaller -F -i ./desc/build.ico ppl.py

1、踩坑1:Plugin already registered

依赖一般都会打入,但是其中也有入到坑,比如 pytest

import pytest
from allure_pytest import plugin as allure_plugin
# pytest.main(argv)
pytest.main(argv, plugins=[allure_plugin])  # todo use package

当我编译打包时需要将 allure_plugin 依赖打入,但是在ide中运行又报错,于是只能改为:

import pytest
from allure_pytest import plugin as allure_plugin
pytest.main(argv)
# pytest.main(argv, plugins=[allure_plugin])  # todo use package

pytest.main(argv) 才得以解决,报错如下:
ValueError: Plugin already registered: allure_pytest=<module ‘allure_pytest.plugin’
python-55-打包exe执行,python3,python,开发语言,windows


2、踩坑2:OSError 句柄无效

1、打包后执行exe发现以下错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
OSError: [WinError 6] 句柄无效。

后看到是loguru日志模块报错:
也看到了此 issues 但是没有实际解决。

2、于是在运行时添加一个自定义参数表示日志是否用 loguru
默认是用,如果添加参数 --colour=0 则表示不使用loguru。
部分代码改动如下:类 PplLog 打印 print 分别有使用到loguru的方法一致,这样代码改动最小了。
python-55-打包exe执行,python3,python,开发语言,windows
3、打包测试
发现正常了,应该就是这个原因 issues 但貌似没有看到更好的解决办法,只能先这样了。
python-55-打包exe执行,python3,python,开发语言,windows


四、总结

优点:

  • 方便、快捷、在可执行操作系统中一键运行。
  • 工具化,他人使用可不再需关注代码、环境依赖等。

缺点:

  • 不支持跨系统编译打包。
  • 一些改动又得重新编译打包、发包。
  • 编译时可能会遇到问题,又比如编译后执行出现问题,也得花时间去解决。

怎么总结下来是弊大于利?没有最好的语言或工具,适合的才是最好。
所以按需择用!

我的踩坑代码示例:
github
gitee

python-55-打包exe执行,python3,python,开发语言,windows文章来源地址https://www.toymoban.com/news/detail-702383.html

到了这里,关于python-55-打包exe执行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PaddleNLP 如何打包成Windows环境可执行的exe?

    当我们使用paddleNLP完成业务开发后,需要将PaddleNLP打包成在Windows操作系统上可执行的exe程序。操作流程: 1.环境准备: 2.安装Pyinstaller 3.目录结构,main.py为可执行python文件。requirements.txt管理了所有的依赖。 4.使用Pyinstaller将python程序打包为exe 5.打包成功了,但运行报错: 6

    2024年01月24日
    浏览(47)
  • 如何将.py 文件打包成windows系统下可执行程序.exe

    在电脑已经安装python的情况下,我们是可以打开后缀为.py的文件,但如果你想把它发送给别的朋友,恰巧他的电脑没有安装python,你就需要将文件打包成.exe格式。 “WIN+R”打开“运行”窗口,输入“cmd”打开命令提示符。输入“pip install Pyinstaller”,下载安装Pyinstaller库。 安

    2023年04月16日
    浏览(57)
  • Python程序打包exe可执行软件教程

    Python虽好,但是平时我们写的代码都是.py脚本文件,必须要在Python环境下 才可以运行。如果一台电脑没有安装Python是无法运行我们的程序的。当然你也可以选择随身携带安装包。 不过终究是有些麻烦。那么有没有什么办法,能把我们编写的Python代码转换成exe文件呢?这样不

    2024年02月09日
    浏览(46)
  • python代码打包成可执行文件(exe)

    【前言】:我们在开发完一个小项目后,想要把项目发布出来给别人用。通常都会把代码打包成exe后再给别人,而不是让别人去安装运行环境再跑裸代码。本文就是介绍如何使用pyinstaller这个工具将python带包成可直接运行的exe。 在介绍pyinstaller之前,先简单介绍下其它几个可

    2024年02月12日
    浏览(52)
  • 【Python打包成exe】快速将多个py文件及其他文件打包为exe可执行文件

    尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家! 准备好将要打包的工程文件(夹) 如上图所示, 首先将主文件UI.py和文件夹./file放在一级文件夹./YW下方,如果有同级其他.py文件与UI.py放在同一级文件夹即可! 然后

    2024年01月21日
    浏览(46)
  • Python代码打包成EXE可执行文件(避开打包文件太大的坑)

    ​​​​​​​ 目录 一、博主的成长经历  二、虚拟环境下打包的好处  三、pyinstaller的基础用法 四、虚拟环境打包操作实例 五、成果展示 欢迎大家来观栏~  ——随乔木凉夏 博主最初使用pyinstaller打包py文件的时候,用的很是顺心,命令行复制粘贴,回车键一敲,不用多久

    2024年02月09日
    浏览(48)
  • 【Python】使用nuitka打包Python程序为EXE可执行程序

    1.说明 写好的Python程序如果想要拿到其他电脑上运行,那还得安装一下Python环境和各种库,这是比较麻烦的,所以有必要把它打包成一个可执行的exe文件。可以打包exe的库有好多个,比如说pyinstaller、cx_Freeze等。 pyinstaller打包比较简单,如果有需要可以参考之前的文章【Pyth

    2024年01月25日
    浏览(42)
  • 通过pyinstaller将python项目打包成exe执行文件

    目录 第一步:安装pyinstaller 第二步:获取一个ico图标(也即是自己这个exe文件最后的图标) 第三步:打包 pip install pyinstaller 先从这里获取一个png图片:iconfont-阿里巴巴矢量图标库 再转化成ico图片(推荐256 x 256):PNG转ICO - 在线转换图标文件  可以把得到的ico图片放在pytho

    2024年02月09日
    浏览(56)
  • python项目打包成exe可执行文件(pyinstaller库)

    前言:才入职新公司;进来工作内容,就是将之前的python脚本项目打包成.exe可执行文件;一来方便不同岗位的同事之间使用,二来源码信息不会改动和泄漏。 正因为python具有丰富的第三方库,目前已有数万之多;这里用到的是 \\\'pyinstaller\\\'库; 正文: 两种情况: Ⅰ、单独一个

    2024年02月06日
    浏览(49)
  • 关于exe4j如何将java jar包打包成windows系统exe可执行文件,并包含JDK环境,超详细教程

    最近做了几个javaFX桌面软件,因为是maven项目,最后打包出来的是jar包,windows系统下要运行jar包,首先要安装JDK环境,然后敲命令:java -jar xxx.jar,才能运行程序,这样会显得很麻烦。而且前提是用户已经安装了JDK环境,所以实用性大大降低。这时就需要把jar包转化成exe可执

    2024年04月28日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包