python - os.environ 对 C 扩展模块的可见性

标签 python python-3.x sqlite environment-variables

如果我使用 os.environ 更改环境变量,我之后导入的模块是否会看到该更改?

具体来说,sqlite3 requires使用环境变量来确定其临时文件位置。但是如果我在 import sqlite3 之前使用 os.environ['SQLITE_TMPDIR'] = '.' ,它没有达到预期的效果。为什么?

最佳答案

sqlite3 模块只是 SQLite C 库的包装器,因此它不会直接看到对 os.environ 所做的任何更改。

然而,documentation说:

If the platform supports the putenv() function, this mapping may be used to modify the environment as well as query the environment. putenv() will be called automatically when the mapping is modified.

因此,如果在您更改 os.environ 后初始化 SQLite 库,它将看到更改。

请注意,SQLite 读取不同的环境变量 on Unix-y OSeson Windows .

关于python - os.environ 对 C 扩展模块的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732249/

相关文章:

python - Mapreduce无法按值排序[python]

python - 如何在每个月的 10 日在表中添加缺失的行?

python - 将用户输入添加到列表中,如果输入存在于列表中则删除它,如果不存在则追加它

javascript - 带有phonegap的sqlite中的错误代码0

php - 在Laravel中为sqlite db设置自定义路径

python - 检查对 URL 的请求是来 self 们的服务器还是外部请求

Python BeautifulSoup 如何获取最新选择器的数据

python - easy_install-3.2.exe 对比 easy_install.exe?

android - Android 是否支持 SQLite 以外的任何其他数据库系统?

python - 使用 python 和 bs4 进行网页抓取