Open
Description
Issue
If you happen to add an executable file (or even a simple file) to the PATH environment variable, the virtual environment may break. I'm not sure of the equivalent process in Linux, but typically, PATH entries are expected to be directories. While it's uncommon for programs to store files directly in PATH, some do. Therefore, we cannot guarantee that it will always contain only directories, making it unreliable to trust.
Environment
- OS: WINDOWS
Traceback
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\run\__init__.py", line 49, in session
parser, elements = build_parser(args, options, setup_logging, env)
self._virtualenv_session = session_via_cli(env_dir, options=None, setup_logging=False, env=env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\run\__init__.py", line 49, in session
parser, elements = build_parser(args, options, setup_logging, env)
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\run\__init__.py", line 49, in session
parser, elements = build_parser(args, options, setup_logging, env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\run\__init__.py", line 77, in build_p
parser._interpreter = interpreter = discover.interpreter # noqa: SLF001
^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\discover.py", line 41, in i
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\discover.py", line 41, in i
self._interpreter = self.run()
self._interpreter = self.run()
^^^^^^^^^^
^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 62, in ru
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 62, in ru
result = get_interpreter(python_spec, self.try_first_with, self.app_data, self._env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
result = get_interpreter(python_spec, self.try_first_with, self.app_data, self._env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 79, in ge
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 79, in ge
for interpreter, impl_must_match in propose_interpreters(spec, try_first_with, app_data, env):
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 79, in ge
for interpreter, impl_must_match in propose_interpreters(spec, try_first_with, app_data, env):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
for interpreter, impl_must_match in propose_interpreters(spec, try_first_with, app_data, env):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 153, in p
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 153, in p
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 153, in p
for exe, impl_must_match in find_candidates(path):
^^^^^^^^^^^^^^^^^^^^^
File "C:\mnt\dev\handy_helpers\packages\my-packages\.venv\Lib\site-packages\virtualenv\discovery\builtin.py", line 213, in path_exes
for exe in path.iterdir():
^^^^^^^^^^^^^^
File "C:\Users\pan7clj\AppData\Roaming\uv\python\cpython-3.12.6-windows-x86_64-none\Lib\pathlib.py", line 1056, in iterdir
for name in os.listdir(self):
^^^^^^^^^^^^^^^^
NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Program Files\\Git\\git-bash.exe'