CtypesEnviron

(类来自 pyomo.common.env)

class pyomo.common.env.CtypesEnviron(**kwds)[source]

基础类:object

用于管理环境变量的上下文管理器

该类提供了一个简化的接口,用于一致地设置和恢复环境变量,并特别处理以确保与Windows平台上的C运行时库环境保持一致。

os.environ 反映了当前的 Python 环境变量,并且会传递给子进程。然而,它并不反映 Windows 平台上的 C 运行时库(MSVCRT)环境。这可能会带来问题,因为通过 CTYPES 接口加载的 DLL 会看到 MSVCRT 环境,而不是 os.environ。这个类提供了一种管理环境变量并将更改传递给 os.environ 和 MSVCRT 运行时的方法。

这个类实现了一个上下文管理器API,以便客户端可以临时更改环境,然后再恢复环境。

>>> os.environ['TEMP_ENV_VAR'] = 'original value'
>>> print(os.environ['TEMP_ENV_VAR'])
original value

>>> with CtypesEnviron(TEMP_ENV_VAR='temporary value'):
...    print(os.environ['TEMP_ENV_VAR'])
temporary value

>>> print(os.environ['TEMP_ENV_VAR'])
original value
__init__(**kwds)[源代码]

方法

__init__(**kwds)

restore()

将环境恢复到原始状态

属性

DLLs

成员文档

restore()[source]

将环境恢复到原始状态

这将恢复通过此对象修改的所有环境变量到该实例进行任何更改之前的状态。请注意,直接对os.environ进行的任何更改在此实例之外将不会被检测到/撤销。