I’m trying to follow this setup:
https://github.com/ncsu-geoforall-lab/GIS714-assignments/blob/main/GRASS_GIS_Foundations/JupyterOnWindows_Tutorial.ipynb
I have stand-alone GRASS GIS 8.3 installed in Windows in C:\GRASS GIS 8.3
I followed the 7 setup steps (changing set path to reflect that its installed in C:\GRASS GIS 8.3
Then when i run this first part:
import os
import subprocess
import sys
Ask GRASS GIS where its Python packages are.
sys.path.append(
subprocess.check_output([“grass”, “–config”, “python_path”], text=True).strip()
)
Import GRASS packages
import grass.script as gs
import grass.jupyter as gj
–
I get the following error:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[1], line 7
3 import sys
5 # Ask GRASS GIS where its Python packages are.
6 sys.path.append(
----> 7 subprocess.check_output(["grass", "--config", "python_path"], text=True).strip()
8 )
10 # Import GRASS packages
11 import grass.script as gs
File C:\GRASS GIS 8.3\Python39\lib\subprocess.py:424, in check_output(timeout, *popenargs, **kwargs)
421 empty = b''
422 kwargs['input'] = empty
--> 424 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
425 **kwargs).stdout
File C:\GRASS GIS 8.3\Python39\lib\subprocess.py:505, in run(input, capture_output, timeout, check, *popenargs, **kwargs)
502 kwargs['stdout'] = PIPE
503 kwargs['stderr'] = PIPE
--> 505 with Popen(*popenargs, **kwargs) as process:
506 try:
507 stdout, stderr = process.communicate(input, timeout=timeout)
File C:\GRASS GIS 8.3\Python39\lib\subprocess.py:951, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
947 if self.text_mode:
948 self.stderr = io.TextIOWrapper(self.stderr,
949 encoding=encoding, errors=errors)
--> 951 self._execute_child(args, executable, preexec_fn, close_fds,
952 pass_fds, cwd, env,
953 startupinfo, creationflags, shell,
954 p2cread, p2cwrite,
955 c2pread, c2pwrite,
956 errread, errwrite,
957 restore_signals,
958 gid, gids, uid, umask,
959 start_new_session)
960 except:
961 # Cleanup if the child failed starting.
962 for f in filter(None, (self.stdin, self.stdout, self.stderr)):
File C:\GRASS GIS 8.3\Python39\lib\subprocess.py:1420, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
1418 # Start the process
1419 try:
-> 1420 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1421 # no special security
1422 None, None,
1423 int(not close_fds),
1424 creationflags,
1425 env,
1426 cwd,
1427 startupinfo)
1428 finally:
1429 # Child is launched. Close the parent's copy of those pipe
1430 # handles that only the child should have open. You need
(...)
1433 # pipe will not close when the child process exits and the
1434 # ReadFile will hang.
1435 self._close_pipe_fds(p2cread, p2cwrite,
1436 c2pread, c2pwrite,
1437 errread, errwrite)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Can someone help figure out what the issue is?
Thanks,
Vishal