百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python打包那些事儿(打包python代码)

off999 2025-06-12 15:11 89 浏览 0 评论

python是个万金油,什么活都能干,开发一些小应用的时候,要想其他人也方便使用,就需要对程序进行打包生成可执行文件,不再依赖python环境或者其他文件。

前几天写了一个视频去水印的小程序,主要依赖ffmpeg,那打包的时候就得把ffmpeg文件带上,并添加到环境变量中才行。

python通常采用pyinstaller模块进行打包,将python程序和依赖环境一起打包成可执行程序。

pyinstaller安装:pip install pyinstaller

pyinstaller常用命令:

-h,--help

查看该模块的帮助信息

-F,-onefile

产生单个的可执行文件

-D,--onedir

产生一个目录(包含多个文件)作为可执行程序

-a,--ascii

不包含 Unicode 字符集支持

-d,--debug

产生 debug 版本的可执行文件

-w,--windowed,--noconsolc

指定程序运行时不显示命令行窗口(仅对 Windows 有效)

-c,--nowindowed,--console

指定使用命令行窗口运行程序(仅对 Windows 有效)

-o DIR,--out=DIR

指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件

-p DIR,--path=DIR

设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径

-n NAME,--name=NAME

指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

python程序使用pyinstaller打包成可执行文件,通常分为三类:

  1. 打包某个文件夹下的某一个py文件;
  2. 打包某个文件夹下的几个py文件;
  3. 打包文件依赖外部配置文件、执行文件、dll文件等。

打包前须知:

  1. 除python自带的模块、包之外(自带是指,pip install xxx 安装上的),其他的例如dll文件类,pyinstaller不负责打包进去,所以需要指定文件所在路径。帮助打包,否则import error。
  2. 所有的外部参数,都可以在第一次打包后的scripts文件夹下的spec文件内修改。

开始单文件打包

执行命令:pyinstaller -F test.py

-F参数是打包成一个独立的exe文件,打包完成后,dist目录下生成的可执行文件便可以使用。

多文件打包

pyinstaller -F test.py, 执行完成后后,需要修改生成的test.spec文件

在Analysis中添加依赖的python文件

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['ffmpeg_clear_watermark.py',
    'D:\\spider\\pygame\\clear_marks\\test1.py',
    'D:\\spider\\pygame\\clear_marks\\test2.py',
    ],
    pathex=[
    ],
    binaries=[],
     datas=[   
],
    hiddenimports=[],
    ...

重新打包:python test.spec

依赖外部文件、配置文件打包

在执行pyinstaller -F ffmpeg_clear_watermark.py完后,修改
ffmpeg_clear_watermark.spec文件,

analysis里添加依赖的python文件;

datas里添加依赖的外部文件,必须为绝对路径;

如果打包依赖的文件导入提示没有找到,需要把文件添加到pathex中。

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
    ['ffmpeg_clear_watermark.py',
    'D:\\spider\\pygame\\clear_marks\\test1.py',
    'D:\\spider\\pygame\\clear_marks\\test2.py',
    ],
    pathex=[
    'D:\\tools\\python3.10\\Lib\\site-packages',
    'D:\\spider\\pygame\\clear_marks\\bin'
    ],
    binaries=[],
     datas=[
        ('D:\\spider\\pygame\\clear_marks\\bin\\ffmpeg.exe', '.'),
        ('D:\\spider\\pygame\\clear_marks\\bin\\ffplay.exe', '.'),
        ('D:\\spider\\pygame\\clear_marks\\bin\\ffprobe.exe', '.')
    ],
    hiddenimports=[],
   ...

然后重新打包:python
ffmpeg_clear_watermark.spec

打包结果

执行exe文件

打包注意事项

  1. python3使用pyinstaller打包报错“win32ctypes.pywin32.pywintypes.error: (110, 'EndUpdateResource', '系统无法打开...

解决方法:

  • 当宿主启动后对应的模块(或纯资源模块)被自动加载,这时相当于文件已经打开,资源就会被锁定
  • 编译A模块时依赖于B模块的接口( 此时链接了B的lib),当A启动后B将被自动载入,资源被锁定( 这里转到情况1)。
  • 当使用LoadLibary加载库后,在没有FreeLibrary之前,资源是锁定的。
  • 有可能被一些防护软件阻挡.
  • 安装"pywin32"和"wheel",重新安装pyinstaller。

2. python3.10打的包不能在windows7操作系统执行,如果想在windows7上执行,需要更换python3.8;

python程序打包后可以在多个平台执行,不再依赖开发环境配置文件等,也是一件很方便的事情。

#从今天起记录我的2023# #pytho##学习#

相关推荐

手机可编辑的办公软件(手机可编辑的办公软件下载)
  • 手机可编辑的办公软件(手机可编辑的办公软件下载)
  • 手机可编辑的办公软件(手机可编辑的办公软件下载)
  • 手机可编辑的办公软件(手机可编辑的办公软件下载)
  • 手机可编辑的办公软件(手机可编辑的办公软件下载)
cad2014破解版激活教程(cad 2014破解版怎么样激活)
cad2014破解版激活教程(cad 2014破解版怎么样激活)

步骤如下:1.打开CAD2014,点击激活,勾选同意协议之后它会告诉您,您的序列号是错误的,这时点击关闭等一会再点击激活即可;2.在激活界面中选择“我拥有一个Autodesk激活码”;3.启动对应版本的XFORCEKeygen32bit...

2026-02-03 15:51 off999

electricity(electricity翻译)

electricity[英][??lek?tr?s?ti][美][?l?k?tr?s?ti,?il?k-]n.电力;电流,静电;高涨的情绪;紧张;以上结果来自金山词霸例句:1.Article31pow...

腾讯游戏实名认证中心官网(腾讯游戏实名认证官网首页)

QQ游戏实名注册和防沉迷系统设置方法:第一步:登录实名注册和防沉迷系统网站(http://jkyx.qq.com/web2010/authoriz.htm);第二步:填写实名制信息;第三步:等待审核,...

qlv文件怎么转换成mp4(qlv文件怎么转换成mp4格式)

要将QLV文件转换为MP4文件,您可以使用专业的视频转换软件。首先,下载并安装一个可靠的视频转换器,如Handbrake或AnyVideoConverter。然后,打开软件并导入您要转换的QLV文...

央视网cctv5直播(央视网cctv5直播在线观看)

看CCTV5直播可以直接选择网页看直播或者使用播放器看直播频道。1、打开e网站2、打开我打圈的,电视直播,但是这里面有些台没有,比如浙江卫视3、然后在左边可以选择你想看的台4、方法2,打开网络主流播放...

视频编辑免费手机版(视频编辑免费手机版app)
  • 视频编辑免费手机版(视频编辑免费手机版app)
  • 视频编辑免费手机版(视频编辑免费手机版app)
  • 视频编辑免费手机版(视频编辑免费手机版app)
  • 视频编辑免费手机版(视频编辑免费手机版app)
qq历史版本官方下载(qq历史旧版本大全)

蟹妖。我用的小米手机,可以双开两个应用,你可以搞两个一样版本的qq。小米手机,还可以手机分身,一个手机不同的解锁方式进入不同的系统,第一个系统你可以安最新版本的qq,另一个系统你可以安装其他版...

一个人看的片免费高清大全(一个人看的片免费高清大全在线观看)

推荐“爱奇艺App手机版”。它是百度旗下的高清电影站,有许多最新最热的正版大片供免费观看,爱奇艺APP是一款集视频、商城、购票、阅读、直播、泡泡粉丝社区等多种服务于一体的移动软件。爱奇艺手机版为用户提...

搜狗翻译app下载(搜狗翻译app下载安装)

有啊,点击输入框弹出搜狗键盘,进入搜狗工具栏最左边的图标,进入加号,添加中英互译。1、首先确认是否电脑键盘按键出现问题,可以通过win+r调出运行,输入osk。2、调出虚拟键盘测试虚拟键盘是否可以正常...

女生付费和男生聊天(女生找男生聊天掉价吗)

不管在什么情况下女生好像都处在优势,因为只听说过娶不到媳妇儿的单身汉,还没有听说过嫁不出去的丑媳妇儿。所以一般这种交友聊天软件就是奔着让男人出钱来的,而且这类软件骗子太多,几乎都是机器人,或者是各种托...

腾讯公司版权所有(腾讯开放版权)

你好!其实这个很好理解,就是版权公司把这个音乐的管理、销售权限(独家版权)授权给了腾讯,腾讯可以把音乐对外进行转授权。所以你看有一些腾讯独家版权的歌,为什么其他音乐平也台会有呢?其实就是腾讯授予的。因...

智能语音机器人(智能语音机器人哪个最好)

1、小米的小爱小爱的智能应用随着近年来的不断升级,在很多手机应用都带来了智能新体验。像移动支付、生活购物、查询信息、打开应用等等,小爱智能语音识别就可以帮你解决。用户还可以自己创建快捷方式,进行语音交...

adobe lightroom(adobe lightroom for ipad破解版)

adobelightroom是一款非常不错的在线教育软件,adobelinghtroom这款软件具有资源管理,资源共享,在线学习,在线考试,成绩管理,教学管控,教学互动,效果评估等等功能,可以为用户提...

解压软件免费(电脑解压软件免费)

WinRAR压缩软件winrar压缩软件界面友好,WINRAR现在最好的压缩工具。使用方便,压缩率和速度方面都有很好的表示。其压缩率比之WINZIP之流要高。winrar压缩软件采用了比Zip更...

取消回复欢迎 发表评论: