【发布时间】:2016-08-12 10:47:58
【问题描述】:
如果我使用 os.environ 更改环境变量,我之后导入的模块会看到该更改吗?
具体来说,sqlite3requires 使用环境变量来确定其临时文件位置。但是如果我在import sqlite3 之前使用os.environ['SQLITE_TMPDIR'] = '.',它并没有达到预期的效果。为什么?
【问题讨论】:
-
RTFM: os.environ: “这个映射是在第一次导入 os 模块时捕获的,通常在 Python 启动期间作为处理 site.py 的一部分。在此之后对环境所做的更改不会反映在 os.environ 中,但直接修改 os.environ 所做的更改除外。”另请参阅 os.putenv 的文档,它具有一些平台相关的功能。
-
如果你link to it,阅读手册会更容易。
-
@PaulCornelius 您误解了文档。它说环境的变化不会反映在
os.environ中。我试图做相反的事情:更改os.environ以更改环境。文档对此只字未提。
标签: python python-3.x sqlite environment-variables