python報錯: OSError: Unable to locate Ghostscript on paths

在使用Python Pillow模块保存Turtle绘图时遇到问题,图像被保存为EPS格式而非PNG。通过安装Ghostscript并指定其路径,解决了格式转换和权限错误。在代码中直接引用Ghostscript的路径,避免修改系统变量,成功将EPS转换为PNG。
摘要由CSDN通过智能技术生成

1.問題描述

這个錯誤出現在我根據 python 極客項目編程 一書的萬花尺一節, 使用pillow模凷保存png圖像時, 導致turtle的繪圖僅保存爲.eps格式文件, 而無法生成.png文件.

2.問題解決

參照網絡上的解決方案, 首先要安裝ghostscript這个軟件, 這个gs的作用簡化來說就是一个兼容于.ps/.eps格式文件的圖像處理引擎, 可進行格式轉化(到pdf/到png等), 在下載界面按操作系統選擇相應版本:

ghostscript 官網下載鏈接

下載後安裝, 記住它的安裝路徑, 找到bin這个子目錄, 如在我的系統中, 如下:

此時, 有用的可執行程序的絕對路徑是:

C:\Program File\gs\gs9.56.1\bin\gswinc64.exe

接下來, 有兩種可選思路解決問題:

1.將這个可執行程序的路徑添加到系統變量PATH, 步驟略, 我沒用這个方法, 因爲我的系統變量夠亂的了;

2.在代碼中指明這个路徑, 好處就是不折騰系統變量, 修改相應代碼, 如下:

import turtle
from PIL import Image, EpsImagePlugin  # 導入Eps類, 要用到其中屬性

# ...中間代碼省略...
    
# 指定gs.exe路徑
EpsImagePlugin.gs_windows_binary = r'C:\Program Files\gs\gs9.56.1\bin\gswin64c.exe'
dateStr = (datetime.now()).strftime("%d%m%Y-%H%M%S")
fileName = 'spiro-' + dateStr  # 創建惟一文件名
print('正在保存爲 %s.eps/png' % fileName)
canvas = turtle.getcanvas()
canvas.postscript(file=fileName + '.eps')
img = Image.open(fileName + '.eps')
img.save(fileName + '.png', 'png')  # 將.eps文件轉化爲png文件

# ...後續代碼省略...

先指定gs.exe的文件路徑, 這樣pillow模凷才可以完成格式轉化.

這一操作也同時解決了在保存圖片過程中, 產生的權限報錯:

PermissionError: [WinError 5] Access is denied, 正常來說, 這个錯誤不應該由pillow引起, 這一點還沒有完全理解...

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值