GDALをPythonパッケージへの依存関係として追加しますか?


9

PyPIにGDALを使用するPythonスクリプトをパッケージ化しようとしています。私は私の中に直接参照を含めることから始めましたsetup.py

install_requires=['GDAL==1.11.2'],

このようにして、パッケージはテスト仮想環境にインストールできませんでした:

extensions/gdal_wrap.cpp:2855:22: fatal error: cpl_port.h: No such file or directory
 #include "cpl_port.h"
                      ^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

次にpygdal、virtualenvフレンドリーバージョンとしてマークされているため、を参照して試してみました。

install_requires=['pygdal'],

このようにして、インストールはエラーなしで終了します(ただし、通常のコンパイル警告のロードが伴います)。しかし、その後スクリプトを呼び出すと、次のエラーが返されます。

Traceback (most recent call last):
  File "/home/desouslu/.virtualenvs/test_p3/bin/hasc2gml", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 2716, in <module>
    working_set.require(__requires__)
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 685, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", line 588, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pygdal

GDALを依存関係として設定する正しい方法は何ですか?

更新:GDALパッケージ自体に依存関係が正しく宣言されているようです。問題はおそらく上流にあります。StackOverflowの詳細。


5
ここでは、gdalに関する純粋なPythonの質問が有効であると主張します。
John Powell

2
査読者がこれが厳密にPythonの質問であると確信しているように見えるのは興味深いが、これまではそれが何であるかを指摘するのをやめた。
ルイス・デ・スーザ

6
これはpythonとGDALの質問であり、トピックについて考える
Ian Turton

3
これは、クロス投稿されました:stackoverflow.com/questions/36471683/...
悪の天才

1
@EvilGenius通常、私はクロスポスティングに反対票を投じますが、この場合は、ここでの質問に対する最初の近い投票が、それが続行する方法であったことを示しているので、それを容認することができます。
PolyGeo

回答:


3

GDAL pythonバインディングをインストールする前に、システムにGDALをインストールする必要があります。

apt-get install -y libgdal-dev

その後、変数を設定してバインディングをインストールします

CPLUS_INCLUDE_PATH=/usr/include/gdal \
C_INCLUDE_PATH=/usr/include/gdal \
pip install GDAL

システムGDALのバージョンは、バージョンバインディングよりも高い必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.