2

Python を使用して外部で Grass を実行するためのスクリプトを実行する方法を学習しようとしていますが、このタイプのスクリプトに必要な基本モジュールが見つからないようです。私が見たすべてのドキュメントは、grass.scripts モジュールの使用について説明していますが、これをダウンロードする場所がわかりません。grass.pygrass に関する情報もいくつか見ましたが、これも見つかりません。

おそらくそれは新しいバージョンのGrassに組み込まれているのではないかと思ったので、7.0.0ベータ2をダウンロードしたところ、まだgrass.scriptsファイルが見つかりました。これは他のモジュール (matploblib、numpy、scipy など) のような python モジュールですか、それともグラスの内部ですか? 是正的な質問で申し訳ありませんが、私はここで迷っています。

次のスクリプトを実行しました ( http://grasswiki.osgeo.org/wiki/GRASS_and_Pythonから取得し、 Python 2.7 を実行しているため、引用を追加しました)

GISBASE= 'C:\GRASS-64'
GISRC= 'C:\Documents and Settings\user\.grassrc6'
LD_LIBRARY_PATH= 'C:\GRASS-64\lib'
PATH= 'C:\GRASS-64\etc;C:\GRASS-64\etc\python;C:\GRASS-64\lib;C:\GRASS-64\bin;C:\GRASS-64\extralib;C:\GRASS-64\msys\bin;C:\Python26;'
PYTHONLIB= 'C:\Python26'
PYTHONPATH= 'C:\GRASS-64\etc\python'
GRASS_SH= 'C:\GRASS-64\msys\bin\sh.exe'

それは問題ありませんが(それが何をするのかわかりませんが)、追加すると

from grass.pygrass.modules import Module

戻ります

ImportError: No module named gras.pygrass.modules

通常、モジュールをダウンロードしてインストールすると、問題は修正されますが、どこにも見つかりません。

4

2 に答える 2

0

次のスクリプトを実行しました ( Python 2.7 を実行しているため、http: //grasswiki.osgeo.org/wiki/GRASS_and_Pythonから引用を追加して取得しました)。

GISBASE= 'C:\GRASS-64'
GISRC= 'C:\Documents and Settings\user\.grassrc6'
LD_LIBRARY_PATH= 'C:\GRASS-64\lib'
PATH= 'C:\GRASS-64\etc;C:\GRASS-64\etc\python;C:\GRASS-64\lib;C:\GRASS-64\bin;C:\GRASS-64\extralib;C:\GRASS-64\msys\bin;C:\Python26;'
PYTHONLIB= 'C:\Python26'
PYTHONPATH= 'C:\GRASS-64\etc\python'

Python 2.7 で引用符を追加する必要があると考える理由がわかりません。そうではありません。

Python26ただし、それらすべてをに置き換える必要がありますPython27。そして、それは簡単にあなたの問題になる可能性があります. には何もありませんC:\Python26

また、Grass を別の場所にインストールした場合はC:\GRASS-64、明らかにそれも変更する必要があります。(ファイルの他の場所から、6464 ビットなどではなく、バージョン 6.4 を参照しているように感じます。7.0.0 をダウンロードしたので、C:\GRASS-70.


または、次のようになります。

ImportError: No module named gras.pygrass.modules

gras.pygrass.modulesの代わりにインポートするとgrass.pygrass.modules、明らかにうまくいきません。


cmd.exeまた、 Python の起動に使用するのと同じウィンドウで実際にそのスクリプトを実行していますか? そうでなければ、それは役に立ちません。


その間:

私が見たすべてのドキュメントは、grass.scripts モジュールの使用について説明していますが、これをダウンロードする場所がわかりません。

リンク先のドキュメントはその質問に答えますが、初心者には明らかではないかもしれません (これを理解したら、アップストリームでドキュメントの改善を提案することをお勧めします)。

関連ファイルは$GISBASE/etc/python/grass/script/*.py.

もちろん、Windows では、これ$GISBASEは文字通り正しくありません。それは実際%GISBASE%には のようなものC:\GRASS-64ですが、同じことです。ファイルはすでにシステム上にあります。ダウンロードするものはありません。それが に設定PYTHONPATHするポイントですC:\GRASS-64\etc\python

これは他のモジュール (matploblib、numpy、scipy など) のような python モジュールですか、それともグラスの内部ですか?

まあ、正確には「Grass の内部」というわけではありませんが、別のモジュールとしてではなく、Grass と一緒に配布されています。

于 2014-07-29T18:44:37.957 に答える