Python 程序打包成 exe 可执行文件,pyinstaller模块

目录

目录

一、小知识

 1.1 exe文件?

1.2为什么要打包为 exe ?

1.3打包模块

二、打包实战

2.1直接在虚拟环境下进行

2.2切换命令行进入文件路径

2.3代码示例

2.4修改一下输入输出

2.5打包环节

2.6制作图标

2.7打包位置 

2.8检查exe文件

三、疑难情况

3.1打包过程

3.2复习一遍常用命令

3.3图标未显示问题

四、其他建议

4.1.1 模块找不到的错误 —— ModuleNotFoundError

4.1.2 图形化程序运行没反应,但也没有报错

4.1.3 语法错误 —— SyntaxError

4.1.4 'pyinstaller' 不是内部或外部命令……


一、小知识

 1.1 exe文件?

       EXE File英文全名executable file ,译作可执行文件,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序。

1.2为什么要打包为 exe ?

       众所周知,Python 程序的运行必须要有 Python 的环境,(因为Python 是解释性语言,它与 C 或者 C++ 等编译型语言不同,C 或者 C++ 都是要编译再运行的。)但是程序编出来怎么方便的给别人使用呢?为了便捷,在电脑上可不安装环境下运行各类文件,这时我们就要将 Python 程序打包为 exe 文件。

1.3打包模块

用 Python 的 Pyinstaller 模块进行打包

网上教程众多,不墨迹,直接实战

二、打包实战

2.1直接在虚拟环境下进行

 打开 Anaconda Prompt,激活环境,直接安装好打包库当然可以重新创建一个比较干净的环境,这样打包起来文件会小一些。

2.2切换命令行进入文件路径

       因为你要打包的文件在对应的文件夹里面,而 Pyinsatller 一开始是不知道要打包的文件在哪里的,所以要直接切换命令行的路径到目标文件夹路径,使得后面的步骤中,Pyinstaller 可以找到对应的文件。

cd 你程序的路径目录

这里我的打包文件夹放在了桌面上,文件夹名为 py脚本,要打包的 Python 文件在 脚本文件夹内,名为 videocat.py 。于是我的文件夹路径为 

2.3代码示例

展示的示例代码

在代码中有输入输出,压缩率等参数是需要设置的,那就要考虑到打包后的输入输出

2.4修改一下输入输出

把原先写死的路径都换成input让用户自己灵活输入和保存,增加一点点细节即可

import cv2
import argparse
import os
 
def process_video(i_video, o_video, num, size):
    cap = cv2.VideoCapture(i_video)
    num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT) #获取总帧数 
    print(num_frame)
    expand_name = '.jpg'
    if not cap.isOpened():
        print("Please check the path.")
        return

    cnt = 0
    count = 0
    while True:   #1:
        ret, frame = cap.read()
        cnt += 1        
        if cnt % num == 0:
            count += 1
            cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame,[int(cv2.IMWRITE_JPEG_QUALITY), size]) # 设置保存参数,保证高画质----  默认95
          
        if not ret:
            break

    cap.release() #释放视频流对象


while True:  # 用户设置阶段
    try:
        i_video_path = input('请输入你的视频文件所在路径(如:F:/新建文件夹,注意是/斜杠和英文冒号):')  # 获取视频文件路径        
        if not os.path.exists(i_video_path):  # 判断文件路径是否存在
            print('你输入的文件路径有误,请重新输入!')
        else:
            print('————文件路径匹配成功!🚀🚀————')
            break
    except NameError:
        print('重输路径')

while True:
    try:
        video_name = input('请输入你的mp4视频文件名(不需要加后缀,如:我的视频):')  # 获取视频文件名
        video = i_video_path + "/" + video_name + ".mp4"   # 格式  avi
        if not os.path.exists(video) or video_name == '':  
            print('你输入的文件名有误,请重新输入!')
        if os.path.exists(video) and video_name != '':
            print('————视频文件匹配成功!————')
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值