同じPythonスクリプトでArcPyツールとPyGRASSツールを使用していますか?


10

さまざまなArcPy / ArcGISコマンドを含むPythonスクリプトを記述しようとしていて、それをGRASSジオプロセシングツールと組み合わせたいと考えています。

残念ながら、GRASSライブラリのインポートは機能しません。

import grass.script as grass

エラーで終了します:

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

GRASS GISが独自のPythonバージョンをインストールすることは知っています。ArcGISとPythonのGRASS GISインストールを組み合わせる方法はありませんか?pygrassモジュール(または私が考えているもの)をC:\ Python26 \ ArcGIS10.0 \ Lib \ site-packages \フォルダーにコピーしてみました。別のエラーメッセージが表示されますが、まだ機能しません。

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ビットコンピューターでArcGIS 10とGRASS 6.4.2を使用しています。

回答:


6

おそらく、草のバージョンのPythonは、草固有のサイトパッケージに独自のPythonバインディングをインストールしています。非理想的なオプションの1つは、インポートする前に以下を追加することgrass.scriptです。

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

$PYTHONPATHこれにより、ArcGIS10.0 Pythonインストールがインポートを検索するときに草を見つけることができるように、一時的に草が追加されます。


こんにちはジェイ、あなたの先端をありがとう。それぞれのフォルダは... / etc / python / grass / script /だと思います。特定の.pyファイルまたはそれらすべてを参照する必要がありますか?
マーティン

1
はい、たとえば、別のフォルダからgdalバインディングを追加したい場合は、を使用する必要がありますpython_install/site-packages/osgeo/gdal.py。んgrass.pyでスクリプトが存在するgrassディレクトリ?
Jay Laura

.pyファイルはいくつかありますが、残念ながらgrass.pyのような明確な名前のファイルはありません。私はそれらすべてを参照しようとしました。残念ながら、まだ機能しません。:-(
マーティン

1
うーん....あなたが試すためのもう1つのアイデア:リンクされた投稿に従って、バンドルされたpythonを使用せずにGRASSをインストールできるようです。おそらく再インストールを試みて、GRASSにArc python installを使用するように強制しますか?Lists.osgeo.org/pipermail/grass-user/2012-June/065178.html
Jay Laura

1
私はパイグラスについて尋ねましたが、多分この投稿はとにかく興味があります。gdalのarcpyバインディングについて説明します。arcgis.com/home/item.html?id=1eec30bf5fa042a5a2227b094db89441
団子
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.