Tengo un módulo que usa ctypes para envolver algunas funcionalidades de una biblioteca estática en una clase. Cuando el módulo se carga, llama a una función de inicialización en la biblioteca estática. Cuando el módulo está descargado (presumiblemente cuando sale el intérprete), hay una función de descarga en la biblioteca a la que me gustaría llamar. ¿Cómo puedo crear este gancho?Detecta cuando un módulo de Python se descarga
7
A
Respuesta
13
utilizar el módulo atexit:
import mymodule
import atexit
# call mymodule.unload('param1', 'param2') when the interpreter exits:
atexit.register(mymodule.unload, 'param1', 'param2')
Otro ejemplo simple de la documentación, utilizando register
como decorador: (?)
import atexit
@atexit.register
def goodbye():
print "You are now leaving the Python sector."
Cuestiones relacionadas
- 1. Detecta cuando un Módulo (DLL) está descargado
- 2. Detecta si un módulo python cambia y vuelve a cargar
- 3. ¿Cómo se detecta cuando se cambia un archivo en iCloud?
- 4. ¿Cómo se detecta cuando un archivo de sonido ha terminado?
- 5. ¿Cómo puedo forzar la descarga de un módulo Perl?
- 6. Detecta cuando CodeIgniter no se puede conectar a un Db
- 7. Descarga de todas las dependencias para un módulo de Perl
- 8. de objetos Python Importación que se origina en un módulo de un módulo diferente en un tercer módulo
- 9. descargar un módulo en Python
- 10. ¿Cómo detecta el módulo unittest de Python los casos de prueba?
- 11. Creación de un módulo de Python
- 12. Descarga de subprocesos de Python
- 13. WPF DataTemplate restablece algunas propiedades de dependencia cuando se descarga
- 14. ¿Cómo detecta Garbage Collector de Python las referencias circulares?
- 15. jQuery comprobar cuando se completa la descarga de PDF
- 16. Python - No se detecta paquete instalado con easy_install (PIL 1.1.7)
- 17. ¿Cómo se detecta cuando se muestra un panel de Add-on SDK?
- 18. extraer un módulo Python importada
- 19. Detecta cuando UITableViewCell desaparece de la pantalla
- 20. ¿Se almacenan las cadenas de docs y los comentarios de Python en la memoria cuando se carga un módulo?
- 21. Cómo des-importar un módulo de Python?
- 22. Múltiples clases en un módulo de Python
- 23. Error al instalar un módulo de python
- 24. cerrar automáticamente Firefox cuando se complete la descarga
- 25. Descarga de archivos con Python mechanize
- 26. cuelga detecta con Python urllib2.urlopen
- 27. Detecta cuando UITableViewCell queda fuera del alcance
- 28. ¿Cómo detecta RVM cuando ha cambiado directorios?
- 29. python "módulo de cadena"?
- 30. Detecta cuando un dispositivo USB está conectado en C
atexit puede ser una solución inconveniente/impuro, especialmente si el horquillas de proceso, etc. ¿Tal vez es mejor omitir la magia y proporcionar una función de "limpieza"/finalización que el usuario del módulo debería llamar? – u0b34a0f6ae
si 'fork'ed desea limpiar el proceso secundario también, ya que compartirá todas las estructuras de memoria. – nosklo
¿Hay alguna forma de detectar el momento en que el módulo se descarga debido a alguna otra circunstancia? (Por ejemplo, si se llama a 'reload'?) – max