Deshabilitar el almacenamiento en caché de Apache de archivos python

Estoy trabajando con django y haciendo la integración de facebook para lo que se necesita un servidor de prueba. He tenido muchos problemas con Apache y su almacenamiento en caché de archivos .pyc, incluso pregunté aquí en stackoverflow .

Esa solución funciona, pero quiero saber si hay una opción para desactivar el almacenamiento en caché de Apache de dichos archivos. El reinicio del servidor puede ser un problema para mí.

EDITAR:

Aquí está el código django.wsgi:

path = '/not/actual/path' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'notactualproj.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 

Cómo resolver su “problema Bytecode”

Probablemente debería averiguar por qué esos archivos .pyc no deseados están allí en primer lugar (¿están estos en su repository? Deben ignorarse).

Como se mencionó en los comentarios, si tiene archivos .pyc colgantes que causan problemas, podría incorporar la eliminación de todos los archivos .pyc como parte de su proceso de extracción cuando implemente un código más nuevo en el servidor. Al ejecutar la aplicación se volverán a crear los que se necesitan cuando se importan los módulos.


Ahora, si realmente no quiere que se genere un PYTHONDONTWRITEBYTECODE , podría usar la variable de entorno PYTHONDONTWRITEBYTECODE , pero no lo recomendaría ya que parece una solución bastante excesiva.

Cómo resolver Apache aparentemente tirando de versiones más antiguas del código.

Ahora, tienes que hacer la diferencia entre dos problemas en juego aquí.

  • Los archivos anteriores de Bytecode generados por python (por ejemplo, archivos .pyc ), que pueden causar problemas en casos específicos, como la sustitución de un archivo por un módulo, pero a menudo no son motivo de preocupación.
  • Mod WSGI no está recargando el código más reciente que se carga. Esto depende del modo en el que esté ejecutando Mod WSGi, y un síntoma habitual es que al golpear una página parece que se obtiene aleatoriamente la versión más nueva o más antigua del código.

Para resolver el primer problema , solo tiene que eliminar los archivos de código de bytes no utilizados. Pero, nuevamente, esto probablemente no es lo que está causando tu problema.

Para resolver el segundo problema , tienes dos soluciones.

  • Reinicie Apache cuando carga un código más nuevo. Al usar apache2ctl -k graceful , esto será transparente para sus usuarios, y no puedo ver por qué “el reinicio del servidor puede ser un problema”, a menos que esté en un alojamiento compartido.
  • Usando la recarga de código, es posible que desee echar un vistazo a la documentación de mod_wsgi .

No creo que el bytecode sea su problema, y ​​la recarga de código probablemente lo sea.