python - with - Visibilidad de los módulos de extensión os.environ a C
using sqlite with python (1)
Si cambio la variable de entorno usando os.environ , ¿los módulos que importo después ven ese cambio?
Específicamente, sqlite3 requiere el uso de una variable de entorno para determinar su ubicación de archivo temporal. Pero si uso os.environ[''SQLITE_TMPDIR''] = ''.'' antes de import sqlite3 , no tiene el efecto deseado. ¿Por qué?
El módulo sqlite3 es solo un contenedor para la biblioteca SQLite C, por lo que no verá directamente ningún cambio realizado en os.environ .
Sin embargo, la documentación dice:
Si la plataforma admite la función putenv () , esta asignación se puede usar para modificar el entorno y consultar el entorno. putenv () se invocará automáticamente cuando se modifique la asignación.
Entonces, si la biblioteca SQLite se inicializa después de haber cambiado os.environ , verá los cambios.
Tenga en cuenta que SQLite lee diferentes variables de entorno en los sistemas operativos Unix-y y en Windows .