ArcPy ve PyGRASS araçlarını aynı Python betiğinde mi kullanıyorsunuz?


10

Farklı ArcPy / ArcGIS komutlarını içeren bir Python betiği yazmaya çalışıyorum ve GRASS coğrafi işleme araçlarıyla birleştirmek istiyorum.

Maalesef GRASS kütüphanelerini içe aktarmak işe yaramıyor.

import grass.script as grass

bir hatayla biter:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
ImportError: No module named script

GRASS GIS'in kendi Python sürümünü kurduğunu biliyorum. ArcGIS ve GRASS GIS Python kurulumunu birleştirmenin bir yolu yok mu? C: \ Python26 \ ArcGIS10.0 \ Lib \ site-Packages \ klasörüne pygrass modülünü (ya da bunun olabileceğini düşündüğüm) kopyalamayı denedim. Farklı bir hata mesajı alıyorum, ancak hala çalışmıyor.

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\__init__.py", line 1, in <module>
    from core   import *
  File "C:\Python26\ArcGIS10.0\lib\site-packages\grass\script\core.py", line 38, in <module>
    gettext.install('grasslibs', os.path.join(os.getenv("GISBASE"), 'locale'))
  File "C:\Python26\ArcGIS10.0\lib\ntpath.py", line 96, in join
    assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

Windows 7 64 Bit makinede ArcGIS 10 ve GRASS 6.4.2 kullanıyorum.

Yanıtlar:


6

Büyük olasılıkla Python'un çim versiyonu, çimlere özgü bir site paketlerine kendi Python bağlarını kurmuştur. İdeal olmayan seçeneklerden biri, içe aktarmadan önce aşağıdakileri eklemek olacaktır grass.script:

import sys
sys.path.append('\path\to\grass\bindings.py')

Bunun yaptığı şey $PYTHONPATH, ArcGIS10.0 Python kurulumunuzun içe aktarma ararken onu bulması için geçici olarak çim eklemektir .


Hey Jay, bahşiş için teşekkürler. Bence ilgili klasör ... / etc / python / grass / script /. Belirli bir .py dosyasına veya hepsine başvurmam gerekiyor mu?
Martin

1
Evet, örneğin, gdal bağlamaları başka bir klasörden eklemek istersem kullanmam gerekirdi python_install/site-packages/osgeo/gdal.py. Dizinde bir grass.pykomut dosyası var mı grass?
Jay Laura

Birkaç .py dosyası var, ne yazık ki hiçbiri grass.py gibi net bir ada sahip değil. Hepsine referansta bulunmaya çalıştım. Maalesef hala çalışmıyor. :-(
Martin

1
Hmmm .... denemeniz için bir fikir daha var: Görünüşe göre bağlantılı yazıya göre paketlenmiş python kullanmadan GRASS yükleyebilirsiniz. Belki bir yeniden yüklemeyi deneyin ve GRASS'ı Arc python kurulumunu kullanmaya zorlayın? lists.osgeo.org/pipermail/grass-user/2012-Haziran/065178.html
Jay Laura

1
Ben pygrass hakkında sordum ama belki bu yazı yine de ilgi çekiyor. Gdal için kavisli bağlardan bahsediyor. arcgis.com/home/item.html?id=1eec30bf5fa042a5a2227b094db89441
dango
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.