Skip to content

getpath miscalculates sys.path from second initialization with PYTHONHOME on Windows #91985

Closed
@neonene

Description

@neonene

When I ran the code below in a python build directory:

#include <Python.h>
int
main(int argc, char *argv[])
{
    PyConfig config;
    PyConfig_InitPythonConfig(&config);
    for (int i=0; i < 3; i++) {
        printf("\n%d\n", i);
        Py_InitializeFromConfig(&config);
        PyRun_SimpleString("import sys; list(map(print, sys.path))");
        Py_Finalize();
    }
    PyConfig_Clear(&config);
    return 0;
}
  • Expected results without PYTHONHOME:
0
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\PCbuild\amd64
C:\cpython-main
C:\cpython-main\Lib\site-packages

1
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\PCbuild\amd64
C:\cpython-main
C:\cpython-main\Lib\site-packages

2
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\PCbuild\amd64
C:\cpython-main
C:\cpython-main\Lib\site-packages
  • set PYTHONHOME=C:\cpython-main:
0
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\PCbuild\amd64
C:\cpython-main
C:\cpython-main\Lib\site-packages

1
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\DLLs  # <<<<<<<<<< unexpected
C:\cpython-main
C:\cpython-main\Lib\site-packages

2
C:\cpython-main\PCbuild\amd64\python311.zip
C:\cpython-main\Lib
C:\cpython-main\DLLs  # <<<<<<<<<< unexpected
C:\cpython-main
C:\cpython-main\Lib\site-packages

Currently, test_embed fails due to this. (#32313)

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-windowstype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions