2016-04-07 18 views
1

GDALを使用するPyPI用のPythonスクリプトをパッケージ化しようとしています。私は私のsetup.pyで直接参照を含めることによって開始しました:GDALを依存関係としてPythonパッケージに追加する方法

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を参照して、それを試してみました、

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を依存関係として設定する正しい方法は何ですか?

答えて

0

私は様々なテストの結果、これはpygdalパッケージ自体の問題であると結論づけました。依存関係は正しく宣言されていますが、pipはインストールまたはコンパイルに失敗します。私は、pygdalpipと直接、Ubuntu 14.04システムとit failsストックにインストールしようとしました。この問題を説明するGDAL/OGR用のPythonホイールはまだありません。詳細はthis discussionを参照してください。

私が現在採用している戦略は、依存関係をユーザーに任せておくことです。ソースコードでは、このようなものは、ユーザを助けることができる:ターゲット・システムは、パッケージ管理機構を使用している場合

try: 
    from osgeo import ogr 
except ImportError: 
    raise (""" ERROR: Could not find the GDAL/OGR Python library bindings. 
       On Debian based systems you can install it with this command: 
       apt install python-gdal""") 

(例えばaptは、yum)一つはGDAL依存プログラムを配布するPiPYの代わりに使用してもよいです。

関連する問題