Где я могу скачать 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