2016-04-07 23 views
1

GDAL kullanan PyPI için bir Python komut dosyasını paketlemeye çalışıyorum. Benim setup.py doğrudan atıf ekleyerek başladı:GDAL, bir Python paketine bağımlılık olarak nasıl eklenir

install_requires=['GDAL==1.11.2'],

paket benim test sanal ortamda yüklenemedi Bu şekilde:

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 

Sonra pygdal bir başvuru ile denedim, virtualenv uyumlu bir sürüm olarak işaretlendiği için:

install_requires=['pygdal'],

Bu sayede kurulum hatasız bir şekilde tamamlanır (ancak derleme uyarılarının olağan yüklenmesiyle).

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 

bir bağımlılık olarak GDAL ayarı doğru yolu nedir: Senaryoyu çağırmak zaman sonra Ancak, ben geri bu hata olsun?

cevap

0

Çeşitli testlerden sonra bunun, pygdal paketinin kendisi ile ilgili bir sorun olduğu sonucuna vardım. Bağımlılık doğru bir şekilde bildirilmiş, ancak pip yüklüyor ya da derlenemiyor. pygdal'u bir stok Ubuntu 14.04 sistemine ve it fails'a doğrudan pip ile yüklemeyi denedim. Bu sorunu açıklayabilecek GDAL/OGR için henüz bir python tekerleği bulunmamaktadır. Daha fazla bilgi için lütfen this discussion'a bakın.

Şu anda çalışmakta olduğum strateji, bağımlılıkları basitçe kullanıcıya bırakmaktır. Kaynak kodunda, böyle bir şey kullanıcıya yardımcı olabilir: Hedef sistem paket yönetim mekanizması kullanıyorsa

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""") 

(örn apt, yum) bir GDAL bağımlı programları dağıtmak için çekirdekli yerine kullanabilirsiniz.

İlgili konular