python3.12 打包脚本

# -*- coding: utf-8 -*-
import shutil
import sys
import os
import subprocess

def get_interpreter_path():
    """
    获取当前 Python 解释器路径

    Returns:
        str: 解释器路径
    """
    return sys.executable

def get_pyinstaller_path(interpreter_path):
    """
    根据解释器路径获取对应的 pyinstaller.exe 路径

    Args:
        interpreter_path (str): 解释器路径

    Returns:
        str: pyinstaller.exe 路径,如果不存在则返回 None
    """
    interpreter_dir = os.path.dirname(interpreter_path)
    pyinstaller_path = os.path.join(interpreter_dir, 'Scripts', 'pyinstaller.exe')
    return pyinstaller_path if os.path.exists(pyinstaller_path) else None

def install_pyinstaller(interpreter_path):
    """
    根据 Python 版本安装 pyinstaller

    Args:
        interpreter_path (str): 解释器路径
    """
    if sys.version_info[0] == 2:
        install_command = f"{interpreter_path} -m pip install pyinstaller"
    elif sys.version_info[0] == 3:
        install_command = f"{interpreter_path} -m pip install pyinstaller"
    subprocess.run(install_command, shell=True)

def package_program(pyinstaller_path, script_file):
    """
    使用 pyinstaller 进行程序打包

    Args:
        pyinstaller_path (str): pyinstaller.exe 路径
        script_file (str): 要打包的脚本文件
    """
    current_dir = os.getcwd()
    if sys.version_info[0] == 2:
        package_command = f"{pyinstaller_path}   -y {script_file} --distpath {current_dir}"
    elif sys.version_info[0] == 3:
        package_command = f"{pyinstaller_path}  -y {script_file} --distpath {current_dir}"
    subprocess.run(package_command, shell=True)

if __name__ == "__main__":
    interpreter_path = get_interpreter_path()
    pyinstaller_path = get_pyinstaller_path(interpreter_path)
    if not pyinstaller_path:
        install_pyinstaller(interpreter_path)
        pyinstaller_path = get_pyinstaller_path(interpreter_path)
    # 请将下面的 'your_script.py' 替换为您要打包的实际脚本文件路径
    package_program(pyinstaller_path, '../cap_data_new.py')
    # 复制文件
    shutil.copy("../config.yaml", "../打包/cap_data_new")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值