Skip to content
Permalink
Browse files

[GRASS] set PATH and PYTHONPATH in startModule() for t.list, #14241

(cherry picked from commit 1d3cbd9)
  • Loading branch information
blazek committed Mar 2, 2016
1 parent 98e31ca commit 8958204cc073bd7c0e52e17758ba074d5d1009c2
Showing with 11 additions and 5 deletions.
  1. +11 −5 src/providers/grass/qgsgrass.cpp
@@ -2061,14 +2061,20 @@ QProcess *QgsGrass::startModule( const QString& gisdbase, const QString& locati
out.flush();
QgsDebugMsg( gisrcFile.fileName() );
gisrcFile.close();
QStringList environment = QProcess::systemEnvironment();
environment.append( "GISRC=" + gisrcFile.fileName() );
environment.append( "GRASS_MESSAGE_FORMAT=gui" );
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
QStringList paths = QgsGrass::grassModulesPaths();
// PYTHONPATH necessary for t.list.py
// PATH necessary for g.parser called by t.list.py
paths += environment.value( "PATH" ).split( QgsGrass::pathSeparator() );
environment.insert( "PATH", paths.join( QgsGrass::pathSeparator() ) );
environment.insert( "PYTHONPATH", QgsGrass::getPythonPath() );
environment.insert( "GISRC", gisrcFile.fileName() );
environment.insert( "GRASS_MESSAGE_FORMAT", "gui" );
// Normaly modules must be run in a mapset owned by user, because each module calls G_gisinit()
// which checks if G_mapset() is owned by user. The check is disabled by GRASS_SKIP_MAPSET_OWNER_CHECK.
environment.append( "GRASS_SKIP_MAPSET_OWNER_CHECK=1" );
environment.insert( "GRASS_SKIP_MAPSET_OWNER_CHECK", "1" );

process->setEnvironment( environment );
process->setProcessEnvironment( environment );

QgsDebugMsg( modulePath + " " + arguments.join( " " ) );
process->start( modulePath, arguments );

1 comment on commit 8958204

@blazek

This comment has been minimized.

Copy link
Member Author

@blazek blazek commented on 8958204 Mar 2, 2016

Why don't you look in bin for the .bat?

The PATH is not added to find t.list (t.list.bat), that is already correctly found also on windows.

t.list.py calls parser() which starts g.parser (g.parser.exe) and that must be in PATH.

Please sign in to comment.
You can’t perform that action at this time.