2011-05-15 24 views
11

¿Es posible evitar que Django cree los archivos .pyc? Sé que es Python quien los crea cuando se importan los módulos, pero ¿hay alguna forma de desactivarlos?¿Es posible evitar que Django cree archivos .pyc mientras está en desarrollo?

Entiendo totalmente por qué se crearon, etc., y los querré cuando entre en funcionamiento, pero actualmente solo ocupan el directorio y me molesta, así que por favor, no "no deberías querer apagarlos". ". También sé cómo podría evitar que aparezcan, etc., etc. Realmente solo quiero saber cómo puedo evitar que se creen.

Oh y estoy en Linux, por supuesto.

Gracias.

+2

Prácticamente un duplicado de esta pregunta: http: // stackoverflow.com/questions/154443/how-to-avoid-pyc-files, intenta buscar antes de hacer una pregunta – ashwoods

+2

Django no tiene nada que decir al respecto. Está completamente en el dominio de responsabilidad de Python. –

+3

No quería venir grosero, solo indicando un hecho. No estoy seguro de que realmente "entiendas totalmente" por qué fueron creados. Sabes que django es "solo" un script de python, y es python quien está creando los archivos de pyc. Cada ejecución del programa python creará archivos pyc, por lo que solo tiene que hacer python -B manage.py [command], como con cualquier otro script de python. ¿O crees que necesitamos una pregunta en la pila para "¿es posible detener [mi programa Python esta vez] desde la creación de archivos pyc"? http://stackoverflow.com/questions/how-to-ask – ashwoods

Respuesta

9

Puede utilizar esta, en su caso:

import sys 

sys.dont_write_bytecode = True 
+0

Corrígeme si me equivoco, pero esto tendría que hacerse en el archivo 'manage.py' del proyecto Django, así como en cualquier archivo WSGI. ¿Hay otros lugares que necesitan este conjunto? –

+0

Voy a analizar esto un poco antes de configurar esto como la respuesta, pero parece ser lo que estaba buscando, más o menos. –

+0

Funcionó perfectamente, lo puso en manage.py y estuvo bien. Todavía no usamos django con Apache, así que está bien. –

2

Editar su despachador, por lo que el hashbang lee:

#!/usr/bin/env python -B

+0

La pregunta operativa entonces es: ¿WSGI (por ejemplo, mod_wsgi de Apache) inicia el archivo WSGI utilizando el shell? Si importa el archivo WSGI como un módulo de Python, esto no funcionará. –

9

Usted puede tratar de establecer el entorno dePYTHONDONTWRITEBYTECODE variables:

PYTHONDONTWRITEBYTECODE

Si esto está configurado, Python no intentará escribir archivos .pyc o .pyo en la importación de módulos de origen.

Nuevo en la versión 2.6.

4

respuesta muy tarde, pero llegué aquí después de buscar en Google. Puede probar esto:

python -B manage.py [any other commands/options] 

Por ejemplo:

python -B manage.py sql yourapp 

Sin embargo, esto no funciona por alguna razón:

python -B manage.py runserver 0.0.0.0:5000 
Cuestiones relacionadas