質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

2回答

1423閲覧

PythonのReportlabでEPSが読み込めない

IC445

総合スコア24

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2018/05/23 04:54

前提・実現したいこと

PythonのReportlabでEPSを読み込む。

発生している問題・エラーメッセージ

画像が存在しているにも関わらず、
EPSが読み込めない。
File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1747, in resize
self.load()
File "/usr/lib64/python2.7/site-packages/PIL/EpsImagePlugin.py", line 337, in load
self.im = Ghostscript(self.tile, self.size, self.fp, scale)
File "/usr/lib64/python2.7/site-packages/PIL/EpsImagePlugin.py", line 143, in Ghostscript
subprocess.check_call(command, stdin=devnull, stdout=devnull)
File "/usr/lib64/python2.7/subprocess.py", line 537, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib64/python2.7/subprocess.py", line 711, in init
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
エラーメッセージ

### 該当のソースコード hogehoge = 'パス' IMG = Image.open(hogehoge) IMG_re = IMG.resize((1000, 1000)) #ここで落ちる ### 試したこと ### 補足情報(FW/ツールのバージョンなど) CentOS Linux release 7.4.1708 Python 2.7.5 Pillow==5.1.0 reportlab==3.4.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

対処方法については分かりませんが回答します。
直接の原因はGhostscriptの呼出に失敗しています。

Pillow/src/PIL/EpsImagePlugin.py
によるとPIL(Pillow)での.epsファイル操作には、内部でGhostscriptを利用しているようですが
subprocess.check_call(command, stdin=devnull, stdout=devnull)
におけるコマンド呼出に失敗しています。

動作検証

Win10(WSL)上のUbuntu 16.04.4にてfootball_logo.epsで試してみましたが、問題なく動作しました。

$ python -V Python 2.7.15 :: Anaconda custom (64-bit) $ pip show pillow Version: 5.1.0 $ pip show reportlab $ (未インストール) $ which gs /usr/bin/gs

ちなみに.epsファイルが存在しない場合は提示とは異なるエラーとなりました。
gsが未インストール、またはパスが通っていないなどが原因かもしれません。

Python

1from PIL import Image 2img = Image.open('football_logo.eps') 3print img.info 4""" 5{'Title': '(football_seal.eps)', 'Pages': '1', 'Creator': '(ImageMagick)', 'Docu 6mentData': 'Clean7Bit', 'LanguageLevel': '1', 'BoundingBox': '0 0 350 350', 'Cre 7ationDate': '(Sat Apr 7 11:01:34 2007)', 'PS-Adobe': '3.0 EPSF-3.0'} 8""" 9img.save('football_logo.png') # OK 10 11# 存在しないファイルを指定するとImage.pyでエラー 12img = Image.open('football_logo2.eps') 13""" 14 File "~lib/python2.7/site-packages/PIL/Image.py 15", line 2548, in open 16 fp = builtins.open(filename, "rb") 17IOError: [Errno 2] No such file or directory: 'football_logo2.eps' 18"""

投稿2018/05/23 05:54

編集2018/05/23 07:00
can110

総合スコア38233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

IC445

2018/05/23 07:07

ghostscriptをインストールする事で、解決いたしました。 ありがとうございました。 yum install ghostscript.x86_64 ghostscript-devel.x86_64 ghostscript-fonts
guest

0

hogehoge にフルパス入れてみよう

投稿2018/05/23 05:07

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問