Windows下PyInstaller打包可执行文件调用openai CLI报错求助
问题解决:PyInstaller打包后Windows下subprocess调用openai CLI报错
问题原因
Windows系统中,openai CLI命令本质是通过Python解释器运行openai.cli模块的脚本,但PyInstaller打包后的可执行文件环境无法直接找到系统中的openai可执行文件路径;而Linux下系统路径机制不同,所以能正常找到。
解决方案
1. 通过Python解释器调用openai模块(推荐)
直接使用当前环境的Python解释器运行openai模块,替代直接调用openai命令,避免路径查找问题:
import sys import subprocess subprocess.run([ sys.executable, "-m", "openai", "tools", "fine_tunes.prepare_data", "-f", dataset_absolute_path, "-q" ])
sys.executable会获取当前运行环境的Python解释器路径,打包后也能正确指向配套的解释器
2. 直接调用openai CLI的源码脚本
通过openai模块的安装路径定位到CLI脚本,再用Python解释器执行:
import sys import os import subprocess import openai # 获取openai CLI脚本的绝对路径 openai_cli_script = os.path.join(os.path.dirname(openai.__file__), "cli", "main.py") subprocess.run([ sys.executable, openai_cli_script, "tools", "fine_tunes.prepare_data", "-f", dataset_absolute_path, "-q" ])
3. 确保PyInstaller打包时包含openai CLI模块
打包时添加参数确保openai.cli被正确打包:
pyinstaller --hidden-import openai.cli your_script.py
或者在.spec文件的hiddenimports列表中添加"openai.cli":
hiddenimports=["openai.cli"]
内容的提问来源于stack exchange,提问作者Adib Baji
相关产品推荐
相关产品推荐

