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.