如果我使用os.environ
更改环境变量,我之后导入的模块是否会看到更改?
具体而言,sqlite3
requires使用环境变量来确定其临时文件位置。但如果我在os.environ['SQLITE_TMPDIR'] = '.'
之前使用import sqlite3
,则效果不佳。为什么呢?
答案 0 :(得分:2)
sqlite3
模块只是SQLite C库的包装器,因此它不会直接看到对os.environ
所做的任何更改。
然而,documentation说:
因此,如果在您更改os.environ
后初始化SQLite库,它将会看到更改。
请注意,SQLite会读取不同的环境变量on Unix-y OSes和on Windows。