Где я могу скачать grass.scripts и / или grass.pygrass?

Я пытаюсь научиться создавать сценарии для внешнего запуска Grass с Python, но, похоже, не могу даже найти базовые модули для этого типа сценариев. Вся документация, которую я видел, описывает использование модуля grass.scripts, но я не знаю, где его скачать. Я также видел некоторую информацию о grass.pygrass, но я также не могу найти это.

Я подумал, что, возможно, он был встроен в более новую версию Grass, поэтому я просто скачал 7.0.0 beta2 и все еще нахожу файлы grass.scripts. Является ли этот модуль Python похожим на другие (matploblib, numpy, scipy и т. Д.) Или он является внутренним для Grass? Извините за коррективные вопросы, но я здесь потерян.

Я запустил следующий скрипт (взят из 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

Обычно я скачивал и устанавливал модуль, и проблема решалась, но я нигде не могу его найти.

2 ответа

Я запустил следующий скрипт (взят из 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'

Я не знаю, почему вы думаете, что Python 2.7 требует добавления цитат. Это не так.

Но это требует от вас заменить все эти Python26 с Python27, И это может быть вашей проблемой. У тебя ничего нет C:\Python26,

И если вы установили Grass где-нибудь, кроме C:\GRASS-64 Вы, очевидно, должны изменить это также. (Откуда-то в файле, я чувствую, что 64 относится к версии 6.4, а не к 64-битной или что-то еще, и вы скачали 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,

Является ли этот модуль Python похожим на другие (matploblib, numpy, scipy и т. Д.) Или он является внутренним для Grass?

Ну, это не совсем "внутренняя часть для Grass", но она распространяется вместе с Grass, а не как отдельный модуль.

Я все еще не уверен, что все понимаю, но, кажется, я преодолел это препятствие. Я использовал скрипт из ( https://gis.stackexchange.com/questions/89452/problem-with-python-script-to-control-grass-gis-from-outside-how-to-import-gra/90160) и изменил всю необходимую информацию о пути, чтобы она соответствовала моей установке, и, по-видимому, теперь доступен модуль grass.script. Вот мой рабочий скрипт

import os
import sys

gisbase = os.environ['GISBASE'] = 'C:\program files\grass gis 6.4.3'  #GISBASE needs to point the root of the GRASS installation directory
gisrc = 'C:\grassdata'
gisdbase = 'C:\grassdata'
location = 'newLocation'
mapset = 'TC'
LD_LIBRARY_PATH = 'C:\program files\grass gis 6.4.3\lib'
PATH = 'C:\program files\grass gis 6.4.3\etc';'C:\program files\grass gis 6.4.3\etc\python';'C:\program files\grass gis 6.4.3\lib';'C:\program files\grass gis 6.4.3\bin';'C:\Python27';'C:\program files\grass gis 6.4.3\Python27';'C:\program files\grass gis 6.4.3\msys'
PYTHONLIB = 'C:\Python27'
PYTHONPATH = 'C:\program files\grass gis 6.4.3\etc\python'
GRASS_SH = 'C:\OSGeo4W64\apps\msys\bin\sh.exe'


sys.path.append(os.path.join(os.environ['GISBASE'], 'etc', 'python'))

import grass.script as grass
Другие вопросы по тегам