Skip to content

[Bug] v.buffer not found in GRASS Conda package #7129

@baharmon

Description

@baharmon

Describe the bug

Running v.buffer using GRASS 8.4.2 installed using Conda results in the error No such file or directory: 'v.buffer'. See the full error below. Test with a Python script and Jupyter notebook on Mac. Confirmed that v.buffer works as expected in binary installations of GRASS 8.4 & 8.5.

To reproduce with Python

  1. Install GRASS using Conda
  2. Start a GRASS session
  3. Run v.buffer.
  4. See error

Example script:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Import libraries
import sys
import subprocess

# Find GRASS Python packages
sys.path.append(
  subprocess.check_output(
    ["grass", "--config", "python_path"],
    text=True
    ).strip()
  )

# Import GRASS packages
import grass.script as gs

# Create a temporary folder
import tempfile
temporary = tempfile.TemporaryDirectory()

# Create a project in the temporary directory
gs.create_project(path=temporary.name, name="xy")

# Initialize project
project = os.path.join(temporary.name, "xy")
gs.setup.init(project)

# Buffer
gs.run_command("v.buffer")

Error report

%runfile /Users/baharmon/Downloads/v_buffer_mwe.py --wdir
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
File ~/Downloads/v_buffer_mwe.py:27
     24 gs.create_project(path=temporary.name, name="xy")
     26 # Buffer
---> 27 gs.run_command("v.buffer")

File ~/miniconda3/envs/grass/grass84/etc/python/grass/script/core.py:476, in run_command(*args, **kwargs)
    474 if _capture_stderr and "stderr" not in kwargs.keys():
    475     kwargs["stderr"] = PIPE
--> 476 ps = start_command(*args, **kwargs)
    477 if _capture_stderr:
    478     stdout, stderr = ps.communicate()

File ~/miniconda3/envs/grass/grass84/etc/python/grass/script/core.py:431, in start_command(prog, flags, overwrite, quiet, verbose, superquiet, **kwargs)
    425     sys.stderr.write(
    426         "D1/{}: {}.start_command(): {}\n".format(
    427             debug_level(), __name__, " ".join(args)
    428         )
    429     )
    430     sys.stderr.flush()
--> 431 return Popen(args, **popts)

File ~/miniconda3/envs/grass/grass84/etc/python/grass/script/core.py:72, in Popen.__init__(self, args, **kwargs)
     69     si.wShowWindow = subprocess.SW_HIDE
     70     kwargs["startupinfo"] = si
---> 72 subprocess.Popen.__init__(self, args, **kwargs)

File ~/miniconda3/envs/grass/lib/python3.14/subprocess.py:1038, 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, pipesize, process_group)
   1034         if self.text_mode:
   1035             self.stderr = io.TextIOWrapper(self.stderr,
   1036                     encoding=encoding, errors=errors)
-> 1038     self._execute_child(args, executable, preexec_fn, close_fds,
   1039                         pass_fds, cwd, env,
   1040                         startupinfo, creationflags, shell,
   1041                         p2cread, p2cwrite,
   1042                         c2pread, c2pwrite,
   1043                         errread, errwrite,
   1044                         restore_signals,
   1045                         gid, gids, uid, umask,
   1046                         start_new_session, process_group)
   1047 except:
   1048     # Cleanup if the child failed starting.
   1049     for f in filter(None, (self.stdin, self.stdout, self.stderr)):

File ~/miniconda3/envs/grass/lib/python3.14/subprocess.py:1989, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group)
   1987     err_msg = os.strerror(errno_num)
   1988 if err_filename is not None:
-> 1989     raise child_exception_type(errno_num, err_msg, err_filename)
   1990 else:
   1991     raise child_exception_type(errno_num, err_msg)

FileNotFoundError: [Errno 2] No such file or directory: 'v.buffer'

System description

  • version=8.4.2
  • date=2025
  • revision=9519c048f6
  • build_date=2026-01-13
  • build_platform=aarch64-apple-darwin20.0.0
  • build_off_t_size=8
  • libgis_revision=9519c048f6
  • libgis_date=2025-11-21T14:02:57+00:00
  • proj=9.7.0
  • gdal=3.12.1
  • geos=
  • sqlite=3.51.2
  • 3.14.3 | packaged by conda-forge | (main, Feb 9 2026, 22:09:14) [Clang 20.1.8 ]
  • 4.2.4 osx-cocoa (phoenix) wxWidgets 3.2.8

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions