2012-07-08 12 views
24

Quería probar y buscar el origen de algunos de los módulos en la biblioteca estándar de Python, pero no pude encontrarlos. Traté de buscar en el directorio de módulos después de descargar el tarball python, pero tiene principalmente archivos .c. También traté de mirar el directorio donde el python que ya viene con el sistema operativo (mac osx) tiene sus módulos, y parece que tiene principalmente archivos .pyc y .pyo. Realmente apreciaría si alguien puede ayudarme.¿Dónde encuentro el código de biblioteca estándar de Python?

(probé lo que se sugiere en la pregunta How do I find the location of Python module sources? sin suerte)

+0

oh haha, leí en alguna parte que una buena forma de aprender cómo se escribe un buen código python es leer el código de la biblioteca estándar. Supongo que lo entendí mal. Todo está en C? – iman453

+0

¿Partes fundamentales para el rendimiento? Claro, queremos rendimiento después de todo. Aunque no es un mal código C;) Todavía hay suficiente material escrito en python en cpython. – Voo

Respuesta

27

En CPython, muchos módulos se implementan en C, y no en Python. Puede encontrarlos en Modules/, mientras que los de Python puros residen en Lib/.

En algunos casos (por ejemplo, el módulo json), el código fuente de Python proporciona el módulo por sí solo y solo utiliza el módulo C si está disponible (para mejorar el rendimiento). Para los módulos restantes, puede echar un vistazo a PyPy's implementations.

+0

Ah, allí está. Debería haber mirado alrededor antes de hacer la pregunta. ¡Gracias! Aceptaré la respuesta una vez que la limitación de tiempo me permita. – iman453

-1

Puede obtener el código fuente de los módulos puros de python que forman parte de la biblioteca estándar desde la ubicación donde está instalado Python.

Por ejemplo, en: C: \ Python27 \ Lib (en Windows) si tiene , usó Windows Installer para la instalación de Python.

1
+0

No estoy seguro de si esto responde la pregunta del OP. @ iman453 ya tiene un tarball; su pregunta es sobre qué * archivos * en ese tarball son interesantes. También estoy un poco desconcertado acerca de esta respuesta ya que creo que ya he señalado el repositorio de Mercurial en [mi respuesta aceptada] (http://stackoverflow.com/a/11385592/35070), aunque no mencioné el Espejo GitHub. – phihag

+2

GitHub es ahora la fuente de la verdad (ver [PEP 512] (https://www.python.org/dev/peps/pep-0512/)). –

0

Búsquelo en el subdirectorio Lib del directorio de instalación de Python.

Cuestiones relacionadas