# -*- 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")
07-12
132
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-08
746
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-12
330
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-24
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交