1diff --git a/graphviz/backend/dot_command.py b/graphviz/backend/dot_command.py 2index d1903e6..6470d11 100644 3--- a/graphviz/backend/dot_command.py 4+++ b/graphviz/backend/dot_command.py 5@@ -10,7 +10,7 @@ from . import parameters 6 __all__ = ['command'] 7 8 #: :class:`pathlib.Path` of layout command (``Path('dot')``). 9-DOT_BINARY = pathlib.Path('dot') 10+DOT_BINARY = pathlib.Path('@graphviz@/bin/dot') 11 12 13 def command(engine: str, format_: str, *, 14diff --git a/graphviz/backend/unflattening.py b/graphviz/backend/unflattening.py 15index 5ed25d6..8d2faf8 100644 16--- a/graphviz/backend/unflattening.py 17+++ b/graphviz/backend/unflattening.py 18@@ -11,7 +11,7 @@ from . import execute 19 __all__ = ['unflatten'] 20 21 #: :class:`pathlib.Path` of unflatten command (``Path('unflatten')``). 22-UNFLATTEN_BINARY = pathlib.Path('unflatten') 23+UNFLATTEN_BINARY = pathlib.Path('@graphviz@/bin/unflatten') 24 25 26 def unflatten(source: str, 27diff --git a/graphviz/backend/viewing.py b/graphviz/backend/viewing.py 28index 6d4a4d1..2cc6cd8 100644 29--- a/graphviz/backend/viewing.py 30+++ b/graphviz/backend/viewing.py 31@@ -54,7 +54,7 @@ def view_darwin(filepath, *, quiet: bool) -> None: 32 @tools.attach(view, 'freebsd') 33 def view_unixoid(filepath, *, quiet: bool) -> None: 34 """Open filepath in the user's preferred application (linux, freebsd).""" 35- cmd = ['xdg-open', filepath] 36+ cmd = ['@xdgutils@/bin/xdg-open', filepath] 37 log.debug('view: %r', cmd) 38 kwargs = {'stderr': subprocess.DEVNULL} if quiet else {} 39 subprocess.Popen(cmd, **kwargs) 40diff --git a/tests/_common.py b/tests/_common.py 41index ab93461..7eaca89 100644 42--- a/tests/_common.py 43+++ b/tests/_common.py 44@@ -10,7 +10,7 @@ __all__ = ['EXPECTED_DOT_BINARY', 'EXPECTED_DEFAULT_ENCODING', 45 'as_cwd', 46 'check_startupinfo', 'StartupinfoMatcher'] 47 48-EXPECTED_DOT_BINARY = pathlib.Path('dot') 49+EXPECTED_DOT_BINARY = pathlib.Path('@graphviz@/bin/dot') 50 51 EXPECTED_DEFAULT_ENCODING = 'utf-8' 52 53diff --git a/tests/backend/test_execute.py b/tests/backend/test_execute.py 54index 05d6525..78484cb 100644 55--- a/tests/backend/test_execute.py 56+++ b/tests/backend/test_execute.py 57@@ -57,6 +57,7 @@ def test_run_check_input_lines_mocked(mocker, sentinel, mock_popen, 58 mock_sys_stderr.flush.assert_called_once_with() 59 60 61+@pytest.mark.skip(reason='empty $PATH has no effect') 62 @pytest.mark.usefixtures('empty_path') 63 @pytest.mark.parametrize( 64 'func, args', 65diff --git a/tests/backend/test_unflattening.py b/tests/backend/test_unflattening.py 66index 033a4d2..7d52689 100644 67--- a/tests/backend/test_unflattening.py 68+++ b/tests/backend/test_unflattening.py 69@@ -8,7 +8,7 @@ import graphviz 70 71 import _common 72 73-EXPECTED_UNFLATTEN_BINARY = pathlib.Path('unflatten') 74+EXPECTED_UNFLATTEN_BINARY = pathlib.Path('@graphviz@/bin/unflatten') 75 76 77 @pytest.mark.exe 78diff --git a/tests/backend/test_viewing.py b/tests/backend/test_viewing.py 79index f5acddb..6b34884 100644 80--- a/tests/backend/test_viewing.py 81+++ b/tests/backend/test_viewing.py 82@@ -25,6 +25,6 @@ def test_view(mocker, mock_platform, mock_popen, mock_startfile, quiet): 83 if mock_platform == 'darwin': 84 mock_popen.assert_called_once_with(['open', 'nonfilepath'], **kwargs) 85 elif mock_platform in ('linux', 'freebsd'): 86- mock_popen.assert_called_once_with(['xdg-open', 'nonfilepath'], **kwargs) 87+ mock_popen.assert_called_once_with(['@xdgutils@/bin/xdg-open', 'nonfilepath'], **kwargs) 88 else: 89 raise RuntimeError