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

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

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1548閲覧

Pythonのsetup.pyを実行すると画像処理拡張Pillow/PIL及びImaging.hに関するエラーが発生する問題について

Yotarou

総合スコア5

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/14 04:54

編集2020/04/14 05:26

前提・実現したいこと

初めて質問する日曜プログラマーです。JAVA版マインクラフトと連動したGoogleMap風の地図機能をウェブベースで表示するMinecraft Overviewerという外部プログラムが公開されており、これを動かしたいです。(SampleMap
公式マニュアルの説明より、リポジトリからインストールを実行すると、CentOS8に対応していないのかエラーによりはじかれた為、ソースコードからインストールを試みました。ディレクトリ構成や必要な構成は整えたと思うのですが、setup.pyを実行した際に以下のようなエラーが出ます。

ディレクトリ構成を確認する場合はこちらからダウンロード可能です

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

$ sudo python setup.py build 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] ['/home/minecraft/Minecraft-Overviewer', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/lib64/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/site-packages', '/usr/lib/python3.6/site-packages'] running build running build_py copying overviewer_core/overviewer_version.py -> build/lib.linux-x86_64-3.6/overviewer_core running build_ext building 'overviewer_core.c_overviewer' extension gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I. -I/usr/lib64/python3.6/site-packages/numpy/core/include -I/usr/include/python3.6m -c overviewer_core/src/main.c -o build/temp.linux-x86_64-3.6/overviewer_core/src/main.o -Wno-unused-variable -Wno-unused-function -Wdeclaration-after-statement -Werror=declaration-after-statement In file included from overviewer_core/src/main.c:18: overviewer_core/src/overviewer.h:40:10: 致命的エラー: Imaging.h: そのようなファイルやディレクトリはありません #include <Imaging.h> ^~~~~~~~~~~ コンパイルを停止しました。 Traceback (most recent call last): File "/usr/lib64/python3.6/distutils/unixccompiler.py", line 127, in _compile extra_postargs) distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "setup.py", line 274, in run build.run(self) distutils.errors.CompileError: command 'gcc' failed with exit status 1 Failed to build Overviewer! Please review the errors printed above and the build instructions at <http://docs.overviewer.org/en/latest/building/>. If you are still having build problems, file an incident on the github tracker or find us in IRC.

見つけたヒント

Imaging.hというのはPythonの画像処理拡張機能Pillow / Pilのファイルとの事です。私はPillowを$ pip install Pillowのコマンドでインストールしました。公式マニュアルのNoteの記載を読むと以下のように書いてありました。

ディストリビューションのパッケージマネージャではなく pip を使って pillow をインストールした場合、 Overviewer が C 拡張モジュールをビルドするために必要な pillow ヘッダは取得できません。その場合は、インストールした pillow のバージョンに応じたヘッダファイルを手動でダウンロードし、環境変数 PIL_INCLUDE_DIR で指定してください。インストールした pillow ライブラリとヘッダのバージョンの不一致は、ABI の不一致により Overviewer の実行中にセグメンテーションフォールトを引き起こす可能性があります。

つまり、私がPillowをインストールした方法だとPillowヘッダを取得できず今回のエラーが発生しているのではないかと思いました。その場合ヘッダファイルを手動でダウンロードし・・と書いてありますが私の知識ではついていけなくなりました。いくつかヒントとなるようなものを見つけましたが解決に至っていません。

また、Pillowをpipからではなくパッケージマネージャからインストールすると問題なさそうなのですがパッケージマネージャというものが何かが分かりません。

ピンと来る方、いらっしゃいましたらお助け願います。宜しくお願いいたします!

補足情報(バージョンなど)

  • CentOS Linux release 8.1.1911 (Core)
  • Python 3.6.8
  • Pillow 7.1.1
  • numpy 1.18.2

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

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

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

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

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

guest

回答1

0

ベストアンサー

また、Pillowをpipからではなくパッケージマネージャからインストールすると問題なさそうなのですがパッケージマネージャというものが何かが分かりません。

「ディストリビューション」のパッケージマネージャです。
CentOSであれば、yumやrpmの事でしょう。

こっからは自分で試していないので憶測ですが、とりあえずヘッダファイルはソースコードの中にありますので、GitHubからインストールしたpillowのバージョンに応じたブランチを選択して、ダウンロードし展開、ヘッダファイルのあるディレクトリを探し(7.1.xだと「src/libImaging」、1.xだと「libImaging」のようです。)、それを環境変数「PIL_INCLUDE_DIR」に指定すればいいように思えます。

投稿2020/04/14 12:01

katsuko

総合スコア3538

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

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

Yotarou

2020/04/14 13:08

神様ありがとうございました。ヘッダファイルはソースコードの中にあり、その場所まで教えていただき本当にありがとうございました。 説明の通り展開し再度環境変数にてbuildすると成功致しました。 具体的には次のコマンドです。 sudo PIL_INCLUDE_DIR=/usr/local/lib64/python3.6/site-packages/Pillow-7.1.1.dist-info/src/libImaging python ./setup.py build 余談ですが私の場合、なぜかPillow本体であろうPillow-7.1.1.dist-infoの中身がGitHubにあるような本体が入っていなく(Pillow本体が見当たらなかった)GitHubから中身をまるごとダウンロードし、ヘッダファイル含め入れなおし、その後上のコマンドで指定しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問