Mer

Bruk Spyder IDE til å utvikle python for Grass GIS, få 'ImportError: Ingen modul med navnet grass.script'


Jeg prøver å bruke Spyder IDE til å utvikle et python-skript ved hjelp av python-bibliotek fra grass-6.4.3. Jeg kjører skriptet nedenfor, og får

ImportError: Ingen modul som heter grass.script

Jeg bruker python 2.7, installert i Grass, Spyder, + native install (C: python27) og operativsystemet mitt er 64-biters Windows 7.

Dette ser ut til å være et vanlig problem, men jeg har prøvd alle de anbefalte løsningene som er beskrevet nedenfor. Jeg har til og med prøvd å installere på en bærbar datamaskin som kjører 32-biters windows 7 og får den samme feilen.

Jeg leste Grass wiki: side: https: //grasswiki.osgeo.org/wiki/GRASS_and_Python#External_Python_editors_.28IDE.29

Så prøvde jeg å følge denne spørsmål og svar til punkt og prikke: Problem med python-skript for å kontrollere GRASS GIS utenfra - Hvordan importerer du grass.script under Win 8.1?

Mitt python-skript:

import sys import os gisbase = os.environ ['GISBASE'] = 'C:  OSGeo4W64  apps  grass  grass-6.4.3' gisdbase = os.path.normpath ('C: / Users / Ryan / grassdata') location = 'newLocation' mapset = 'Ryan' GISRC = os.path.normpath ('C: / Users / Ryan / AppData / Roaming / GRASS6 / grassrc6') LD_LIBRARY_PATH = 'C:  OSGeo4W64  apps  grass  grass-6.4 .3  lib 'PATH =' C:  Python27 ';' C:  Brukere  Ryan  grassdata ';' C:  Brukere  Ryan  AppData  Roaming  GRASS6  grassrc6 ';' C:  OSGeo4W64  bin ' ; 'C:  OSGeo4W64  apps  grass  grass-6.4.3'; 'C:  OSGeo4W64  apps  grass  grass-6.4.3  lib'; 'C:  OSGeo4W64  apps  grass  grass-6.4 .3  etc  python ';' C:  OSGeo4W64  apps  grass  grass-6.4.3  etc ';' C:  OSGeo4W64  apps  grass  grass-6.4.3  bin ';' C:  OSGeo4W64  apps  Python27 ';' C:  OSGeo4W64  apps  Python27  Lib  site-packages ';' C:  OSGeo4W64  apps  msys ';' C:  OSGeo4W64  apps  grass  grass-6.4.3  scripts 'PYTHONLIB =' C:  Python27 'PYTHONPATH =' C:  OSGeo4W64  apps  grass  grass-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 ') ) sys.path.append ('C:  OSGeo4W  bin') sys.path.append ('C:  OSGeo4W64  apps  grass  grass-6.4.3  etc') sys.path.append ('C:  OSGeo4W64  apps  grass  grass-6.4.3  etc  python ') sys.path.append (' C:  OSGeo4W64  apps  grass  grass-6.4.3  lib ') sys.path.append (' C:  OSGeo4W64  apps  grass  grass-6.4.3  bin ') importerer grass.script som grass import grass.script.setup som gsetup gsetup.init (gisbase, gisdb, location, mapset)

Jeg har lagt til miljøvariablene mine manuelt i systeminnstillingene (kopiert her):

GISBASE = C:  OSGeo4W64  apps  grass  grass-6.4.3 GISDBASE = C:  Users  Ryan  grassdata GISRC = C:  Users  Ryan  AppData  Roaming  GRASS6  grassrc6 GRASS_SH = C:  OSGeo4W  apps  msys  bin  sh.exe LD_LIBRARY_PATH = C:  OSGeo4W64  apps  grass  grass-6.4.3  lib PATH = C:  Python27; C:  Users  Ryan  grassdata; C:  Users  Ryan  AppData  Roaming  GRASS6  grassrc6; C:  OSGeo4W64  bin; C:  OSGeo4W64  apps  grass  grass-6.4.3; C:  OSGeo4W64  apps  grass  grass-6.4.3  lib; C:  OSGeo4W64  apps  grass  grass-6.4.3  etc  python; C:  OSGeo4W64  apps  grass  grass-6.4.3  etc; C:  OSGeo4W64  apps  grass  grass-6.4.3  bin; C :  OSGeo4W64  apps  Python27; C:  OSGeo4W64  apps  Python27  Lib  site-packages; C:  OSGeo4W64  apps  msys; C:  OSGeo4W64  apps  grass  grass-6.4.3  scripts PYTHONLIB = C:  Python27 PYTHONPATH = C:  OSGeo4W  apps  grass  grass-6.4.3  etc  python '

Jeg har lagt til en fil som heter 'grass.pth' til: C: OSGeo4W apps python27 lib site-packages. Filen inneholder:

C: OSGeo4W apps grass grass-6.4.3 etc python C: OSGeo4W bin

Jeg har startet gress interaktivt for å lage en 'grassrc6' fil, som ligger her: C: Users Ryan AppData Roaming GRASS6 grassrc6

Jeg er ikke sikker på hva annet jeg kan prøve, jeg er sikker på at noe må være galt med miljøvariablene, men jeg vet ikke hva jeg skal se etter.

Er det også nødvendig å definere miljøvariablene i både python-skriptet og manuelt i systeminnstillingene?


Denne flaggfilen starter spyder for meg og importerer grass.script fine:

@echo av rem sett OSGEO4W_ROOT = c:  OSGEO4W64 rem sett PATH =% OSGEO4W_ROOT%  bin;% PATH% samtale c:  osgeo4w64  bin  o4w_env.bat ring% OSGEO4W_ROOT%  apps  grass  grass-6.4.3  etc  env.bat sett GDAL_DRIVER_PATH =% OSGEO4W_ROOT%  bin  gdalplugins  1.9 sett PATH =% PATH%;% OSGEO4W_ROOT%  apps  qgis  bin sett PATH =% PATH%;% OSGEO4W_ROOT%  apps  grass  grass- 6.4.3  lib set PATH =% PATH%;% OSGEO4W_ROOT%  apps  Python27  Scripts  set GISBASE = C:  OSGeo4W64  apps  grass  grass-6.4.3 set GISDBASE = d:  documents  grassdata set GISRC = C:  Brukere  sando_000  AppData  Roaming  GRASS6  grassrc6 sett GRASS_SH = C:  OSGeo4W  apps  msys  bin  sh.exe sett PYTHONPATH =% PYTHONPATH%;% OSGEO4W_ROOT%  apps  qgis  python; sett PYTHONPATH =% PYTHONPATH%;% OSGEO4W_ROOT%  apps  Python27  Lib  nettstedspakker satt PYTHONPATH =% PYTHONPATH%;% OSGEO4W_ROOT%  apps  grass  grass-6.4.3  etc  pythonsett QGISPATH =% OSGEO  apps  qgis start c:  OSGeo4W64  apps  Python27  Scripts  spyder.bat

Jeg har en OSGE4W 64-biters installasjon w grass-6.4.3, python-2.7 og spyder installert fra kildepakken med:

python setup.py install

Dette skriptet er en modifisert versjon fra det som pleide å starte pyscripter med qgis: https://mapoholic.wordpress.com/2012/06/28/configure-pyscripter-qgis/