94 votos

¿Qué es __pycache__?

Todavía soy bastante nuevo en la programación, y yo estaba buscando en google esta pregunta y no me parece para obtener una respuesta clara.

Busqué en google lo que es un caché y entiendo que es un archivo cifrado de archivos similares (un poco enrevesada, parafrasear, pero creo que algunos estarán de acuerdo en que es preciso).

Lo que, como programador, qué podemos hacer con la carpeta __pycache__? Es lo que damos a las personas en lugar de nuestro código fuente? Es justo la información que he de entrada? Esta carpeta guarda el conseguir creado y me estoy preguntando de qué se trata...

87voto

scott_fakename Puntos 822

Cuando ejecuta un programa en python, el intérprete compila a bytecode la primera (esto es una simplificación excesiva) y la almacena en la __pycache__ carpeta. Si se mira allí va a encontrar un montón de archivos de compartir los nombres de los .py archivos en la carpeta del proyecto, sólo sus anexos será .pyc o .pyo. Estos son bytecode compilado y optimizado bytecode compilado de versiones de sus archivos del programa, respectivamente.

Como programador, puede en gran medida simplemente lo ignoran... Todo lo que hace es hacer que su programa de empezar un poco más rápido. Cuando los scripts cambio, van a ser recompilados, y si elimina los archivos o la totalidad y ejecutar el programa de nuevo, que volverá a aparecer (a menos que usted específicamente suprimir ese comportamiento)

Si usted está usando cpython (que es el más común, como es la implementación de referencia) y usted no desea que la carpeta, a continuación, usted puede suprimir iniciando el intérprete con la opción-B de la bandera, por ejemplo

python -B foo.py

Otra opción, como señaló tcaswell, es establecer la variable de entorno PYTHONDONTWRITEBYTECODE para cualquier valor (de acuerdo a python que la página de manual, "no vacía cadena de texto").

10voto

yacc143 Puntos 107

Una advertencia importante es que se utilizará el archivo .pyc en la memoria caché en lugar del archivo .py si falta el archivo .py.

En la práctica, esto sólo sucede si eliminar (o Renombrar) módulos, así que no es una ocurrencia común, pero si algunas cosas sigue estando "ahí", después de rascarse la cabeza, corriendo. -nombre *.pyc | xargs rm o n su origen es probablemente una buena primera reacción.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X