GRASS-Funktionen von externem Python aufrufen?

8

Ich habe GRASS 6.4.3 svn auf meinem Computer unter Windows 7 installiert. Auch auf meinem Computer habe ich Python 2.7.3 für Windows installiert. Jetzt muss ich GRASS-Bibliotheken aus Python aufrufen und nicht innerhalb der Python-Shell in der GRASS-GUI. Ich setze dafür die Umgebungsvariablen in env.bat. Die Verbindung schlägt jedoch fehl. Dies ist das, was env.batich habe:

set GISBASE=C:\Program Files\GRASS GIS 6.4.3svn

set HOME=%USERPROFILE%

set LD_LIBRARY_PATH = %GISBASE%\lib

set PATH= %GISBASE%\etc;%PATH%
set PATH=%GISBASE%\Python27;%PATH%
set PATH=%GISBASE%\lib;%GISBASE%\bin;%GISBASE%\extralib;%GISBASE%\msys\bin;%PATH%
set PATH=C:\Python27;%PATH%

set PYTHONLIB= C:\Python27;%PYTHONLIB%
set PYTHONPATH= %GISBASE%\etc\python;%PYTHONPATH%

rem Environmental variables for GRASS stand-alone installer

set GRASS_WISH=%GISBASE%\extrabin\wish.exe
set GRASS_PYTHON=python

set GRASS_PROJSHARE=%GISBASE%\proj
set GRASS_HTML_BROWSER=explorer
set GRASS_SH=%GISBASE%\msys\bin\sh.exe

set PYTHONHOME=%GISBASE%\Python27
set GDAL_DATA=%GISBASE%\share\gdal
set PROJ_LIB=%GISBASE%\proj
set GEOTIFF_CSV=%GISBASE%\share\epsg_csv

set PATH=%GISBASE%\msys\bin;%PATH%
set PATH=%GISBASE%\extrabin;%GISBASE%\extralib;%PATH%
set PATH=%GISBASE%\tcl-tk\bin;%GISBASE%\sqlite\bin;%GISBASE%\gpsbabel;%PATH%
set PATH=%GISBASE%\bin;%PATH%

rem Path to the python directory --
rem set PYTHONHOME=%GISBASE%\Python27 
rem if "x%GRASS_PYTHON%" == "x" set GRASS_PYTHON=python 

Kann mir jemand helfen, das Problem zu beheben?

Sanjeewa
quelle

Antworten:

5

Überprüfen Sie diese Seite; Möglicherweise erhalten Sie eine Vorstellung davon, wie Sie es einrichten:

http://grasswiki.osgeo.org/wiki/GRASS_and_Python

-> Erstellen von Python-Skripten, die die GRASS-Funktionalität von außen aufrufen

-> MS-Windows

markusN
quelle
Ja. Ich habe die env.bat über die Website modifiziert. Ich finde .grassrc6 jedoch nicht in dem auf der Website angegebenen Pfad (GISRC = C: \ Dokumente und Einstellungen \ user \ .grassrc6) oder in einem anderen Pfad. Manchmal kann es die Ursache sein. Irgendeine Idee dazu?
Sanjeewa
1
Führen Sie GRASS entweder einmal aus, um die .grassrc6-Datei automatisch zu erstellen, oder erstellen Sie sie manuell. Ich habe die Wiki-Seite entsprechend aktualisiert.
MarkusN
Ich habe das GRASS erneut ausgeführt, aber die Datei wurde nicht erstellt. Meine aktuellen Einstellungen sind: GSIDBASE = C: \ users \ kabs \ My Document, Location = Spearfish60 und Mapset = user1. So aktualisieren Sie in ein vorhandenes Verzeichnis (ich habe c: \ users \ grassdata erstellt) mit Speicherort, Kartensatz und insbesondere GRASS_DB_ENCODING: ascii
Sanjeewa
Habe ich recht, dass wir dasselbe auf der Grasnutzer-Mailingliste diskutieren? Die Wiki-Seite wurde jedoch erneut aktualisiert.
MarkusN
2

Bei der Konfiguration von Python für Gras hatte ich das gleiche Problem. Ich habe grassrc6 unter APPDATA gefunden:

Es spielt keine Rolle, wie die Datei heißt, solange% GISRC% darauf zeigt und die erforderlichen Einstellungen enthält.

Der normale Speicherort für GRASS 6.x unter Windows ist:% APPDATA% \ GRASS6 \ grassrc6

Unter Windows 7 ist eine typische Einstellung für% APPDATA% C: \ Users \\ AppData \ Roaming

Es ist hier geschrieben .

GokcenG
quelle