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

macOS下如何修复Python/PyCharm中的Ghostscript路径问题?

解决Ghostscript 'gs' 找不到的问题

问题根源

你添加环境变量PATH时犯了一个关键错误:os.environ["PATH"] += ":/opt/homebrew/bin/gs" 中添加的是Ghostscript可执行文件的完整路径,但PATH环境变量需要的是包含该可执行文件的目录路径,而非文件本身。这就是为什么终端能找到gs,但Python代码找不到的原因。

修复方案

方案1:修正PATH设置

将代码开头的PATH修改为添加目录而非具体文件:

import os
# 正确添加Ghostscript所在目录到系统PATH
os.environ["PATH"] += os.pathsep + "/opt/homebrew/bin"

os.pathsep会自动适配macOS的路径分隔符(:),比硬写分隔符更通用。

方案2:直接给PIL指定Ghostscript路径

如果方案1无效,可以直接告诉PIL的EPS插件Ghostscript的具体位置,在导入PIL相关模块前添加:

from PIL import EpsImagePlugin
# 替换为你的Ghostscript可执行文件路径
EpsImagePlugin.gs_windows_binary = "/opt/homebrew/bin/gs"

(注:变量名带windows是历史遗留问题,macOS/Linux同样适用)

额外检查项

  • 确认PyCharm使用的Python解释器和终端一致:在PyCharm的运行配置中查看解释器路径,和终端执行which python的结果对比,避免因虚拟环境或不同解释器导致的PATH差异。

代码优化建议

  1. frame_save函数每次覆盖image.eps,高帧率场景下可能出现文件读写冲突,建议用临时文件:
import tempfile

def frame_save():
    # 创建临时EPS文件
    with tempfile.NamedTemporaryFile(suffix='.eps', delete=False) as tmp_file:
        win.postscript(file=tmp_file.name, colormode='color')
        img = NewImage.open(tmp_file.name)
        images.append(img)
    # 用完删除临时文件
    os.unlink(tmp_file.name)
  1. save_gif的参数len是Python内置函数名,建议重命名为frame_duration,避免命名冲突。

内容的提问来源于stack exchange,提问作者Nathan Gibson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:02:23