El archivo zip incrustado de Python no incluye lib / site-packages en sys.path

Estoy intentando actualizar nuestra versión de Python de 3.4 a 3.6. Estamos incorporando Python en una aplicación de C ++, por lo que parecía lógico utilizar el nuevo archivo zip incrustable de Windows x86 (desde Python 3.5). Sin embargo, nuestra aplicación no se ejecuta porque “lib / site-packages” no se agrega a la variable sys.path . He confirmado que después de instalar Python 3.6 en mi máquina y ejecutarlo desde la ubicación instalada, la variable sys.path contiene (en relación con el directorio de python):

 '...\\python36.zip' '...\\DLLs' '...\\lib' '...' '...\\lib\\site-packages' 

Sin embargo, cuando ejecuto desde el archivo zip incrustado en la misma máquina, la variable sys.path contiene (en relación con el directorio de python):

 '...\\python36.zip' '...' '...\\\n' 

En ambos casos, el directorio “lib / site-packages” existe dentro del directorio de Python. Tampoco tengo una variable de entorno PYTHONPATH definida. ¿Alguien sabe cómo hacer que el archivo zip incrustado actúe de la misma manera que la versión instalada, con respecto a cómo determina sys.path ?

Después de extraer el archivo zip incrustado de Python, hay un archivo llamado “python36._pth” en el directorio raíz. Ese archivo contiene el siguiente texto:

 # Uncomment to run site.main() automatically #import site 

Como indica el comentario, simplemente elimine el comentario de la statement del import site eliminando el carácter ‘#’. Después de hacerlo, la variable sys.path contiene:

 '...\\python36.zip' '...' '...\\\n' '...\\lib\\site-packages' 

Esto sigue siendo diferente a la versión instalada, pero es exactamente lo que necesitaba en mi caso particular.

Comience a editar

También descubrí que puedes eliminar el archivo “python36._pth” por completo, lo que revierte a Python al comportamiento de la versión no incorporable.