www with tutorial org fetchmany python python-3.x sqlite3 environment-variables

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 .