You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下通过os.system调用Python脚本缺PIL但单独运行正常如何解决

问题原因

macOS 默认自带 Python2 版本,你手动安装的依赖(包括 PIL/Pillow)都是安装在你常用的 Python3 环境下。你单独运行 test.py 时默认调用的是带依赖的 Python3 环境,但主脚本里 os.system('python xxx') 中的 python 默认指向系统的 Python2,该环境下没有安装 Pillow 库,就会抛出找不到模块的错误。

解决方案

不需要整体改写代码,只需要修改主脚本里的调用逻辑即可,可选方案如下:

  • 方案1:直接替换调用命令为 Python3 路径
    你可以先在终端执行 which python3 查看你当前常用 Python3 的完整路径,比如返回结果为 /usr/local/bin/python3,就把主脚本里的 OpenPreview 函数改成:
def OpenPreview():
    os.system('/usr/local/bin/python3 /Users/adamd/Desktop/psychedelic_euphoria/test.py')
  • 方案2:自动适配当前运行主脚本的 Python 解释器(更稳定,避免环境差异问题)
    导入 sys 模块,用 sys.executable 获取当前运行主脚本的 Python 解释器的完整路径,修改后的代码如下:
    首先在主脚本开头添加导入:
import sys

然后修改 OpenPreview 函数:

def OpenPreview():
    os.system(f'{sys.executable} /Users/adamd/Desktop/psychedelic_euphoria/test.py')

可选优化

如果后续需要更灵活的控制子进程的输入输出、运行状态,可以把 os.system 替换为 subprocess 模块的调用,用法参考:

import subprocess
def OpenPreview():
    subprocess.run([sys.executable, '/Users/adamd/Desktop/psychedelic_euphoria/test.py'])

内容的提问来源于stack exchange,提问作者Risal Shahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:48:01