Python – ¿para qué sirve la subcarpeta libs?

Para mí, está ubicado en C: \ Python33 \ libs.

Para referencia – esta no es la misma carpeta que C: \ Python33 \ Lib – note el uso de mayúsculas y la falta de una ‘s’.

En una computadora en la que estaba trabajando, simplemente coloqué un archivo .py en la carpeta libs y pude importarlo y usarlo como una biblioteca / módulo (lo siento, no conozco muy bien la terminología), independientemente de dónde esté el proyecto. estaba trabajando en es

Sin embargo, al intentar duplicar esto en otra máquina, esto no funciona. Intentar importar simplemente da un error “no hay módulo llamado X”.

Por lo tanto, claramente estoy entendiendo mal el propósito de la carpeta libs y en qué se diferencia de la carpeta Lib.

Entonces, ¿cuál es exactamente la diferencia?

Si compara libs / vs. Lib / notará que este último está lleno de archivos * .py y el primero tiene archivos * .lib. La investigación adicional con un editor de texto mostrará que los archivos * .py son legibles para el ser humano (espero) y los archivos * .lib no lo son.

Y esa es realmente la diferencia. Si quieres saber más, los archivos .lib son bibliotecas de enlace estático, que se usan para comstackr .dlls, extensiones C y todas esas cosas buenas. Continúa por el agujero del conejo si eso te interesa.

En cuanto a la cuestión de su pregunta: ¿se supone que debe poder colocar módulos allí y poder importarlos? Realmente no. Ese es un efecto secundario de que esa carpeta se incluya en su ruta. De los documentos de los módulos:

Cuando se importa un módulo llamado spam, el intérprete primero busca un módulo incorporado con ese nombre. Si no se encuentra, luego busca un archivo llamado spam.py en una lista de directorios que ofrece la variable sys.path. sys.path se inicializa desde estas ubicaciones:

  • el directorio que contiene el script de entrada (o el directorio actual).
  • PYTHONPATH (una lista de nombres de directorio, con la misma syntax que la variable de shell PATH).
  • el predeterminado dependiente de la instalación.

Varios métodos de instalación modificarán% PATH% o% PYTHONPATH%, por lo que no puedo decirle exactamente dónde buscar; en mi caja de Windows, el instalador de Python modificó% PATH% para mí, por lo que probablemente deberías mirar allí primero. Notablemente, mi ruta no incluye Python33 / libs / así que no esperaría que estuviera allí por defecto.

El solo hecho de buscar en el mío (Windows 7) / libs parece ser las bibliotecas de código nativo (* .lib) frente a las bibliotecas de python rectas en / Lib. El archivo Léame también menciona un indicador de configuración:

–with-libs = ‘libs’: agregue ‘libs’ al LIBS con el que el intérprete de python está vinculado.

Que puede o no estar configurado en diferentes instalaciones / plataformas.

Esto no es realmente una respuesta; Esperemos que alguien con un conocimiento más firme de esto se lo explique más a fondo, fue solo un poco demasiada información como para hacer un comentario.