Skip to content

pip installation crash on Windows with 3.13/3.14 - registry / environment variables #140465

@mrmundt

Description

@mrmundt

Bug report

Bug description:

We started seeing incorrect behavior specifically on Windows with respect to pip finding the correct environment variables / registry information. (Full GHA can be seen here: https://github.com/Pyomo/pyomo/actions/runs/18721843436/job/53397827326?pr=3768)

Basic gist:

  1. Windows (both 2022 and 2025 servers)
  2. Python 3.13.7/9, 3.14.0
  3. Miniconda (conda version: 25.7.0)

We install a set of packages using conda install, but there are a few that are only available through pip. When attempting to pip config, pip debug, pip install, anything pip, it returns an error similar to:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\__main__.py", line 24, in <module>
    sys.exit(_main())
             ~~~~~^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\cli\main.py", line 65, in main
    cmd_name, cmd_args = parse_command(args)
                         ~~~~~~~~~~~~~^^^^^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\cli\main_parser.py", line 79, in parse_command
    general_options, args_else = parser.parse_args(args)
                                 ~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Miniconda\envs\test\Lib\optparse.py", line 1371, in parse_args
    values = self.get_default_values()
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\cli\parser.py", line 283, in get_default_values
    self.config.load()
    ~~~~~~~~~~~~~~~~^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\configuration.py", line 127, in load
    self._load_config_files()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\configuration.py", line 258, in _load_config_files
    config_files = dict(self.iter_config_files())
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\configuration.py", line 353, in iter_config_files
    config_files = get_configuration_files()
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\configuration.py", line 73, in get_configuration_files
    os.path.join(path, CONFIG_BASENAME) for path in appdirs.site_config_dirs("pip")
                                                    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_internal\utils\appdirs.py", line 47, in site_config_dirs
    dirval = _appdirs.site_config_dir(appname, appauthor=False, multipath=True)
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_vendor\platformdirs\__init__.py", line 146, in site_config_dir
    ).site_config_dir
      ^^^^^^^^^^^^^^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_vendor\platformdirs\windows.py", line 67, in site_config_dir
    return self.site_data_dir
           ^^^^^^^^^^^^^^^^^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_vendor\platformdirs\windows.py", line 56, in site_data_dir
    path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA"))
                            ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Miniconda\envs\test\Lib\site-packages\pip\_vendor\platformdirs\windows.py", line 209, in get_win_folder_from_registry
    directory, _ = winreg.QueryValueEx(key, shell_folder_name)
                   ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified

I have found that reverting to 3.13.5 is a workaround (specifically for 3.13), but we are now seeing it on 3.13.7/8/9 and 3.14.0. We have tried manually setting multiple environment variables (such as "CSIDL_COMMON_APPDATA"), "tricking" pip into using an empty config, running pip in --isolated mode.

CPython versions tested on:

3.13, 3.14

Operating systems tested on:

Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions