gpt4 book ai didi

python - os.environ ['PYTHONHASHSEED' ] 可以从应用程序中动态设置吗?

转载 作者:太空狗 更新时间:2023-10-29 21:31:30 24 4
gpt4 key购买 nike

是否可以通过简单地将其设置为这样的新值来更改当前进程?

os.environ['PYTHONHASHSEED'] = 'random'

最佳答案

这取决于你的意思。

如果你想改变当前解释器的行为,答案是:

  1. 修改 os.environ 并不可靠,因为在某些操作系统中您无法修改环境(请参阅 os.environ 的文档)。

  2. 只有启动解释器时才会检查环境变量,因此之后更改它们不会对当前 python 实例产生任何影响。来自 the documentation :

    These environment variables influence Python’s behavior, they are processed before the command-line switches other than -E or -I.

    (这意味着只有在启动解释器时才会检查它们,远在运行任何用户代码之前)。

AFAIK,随机哈希种子不能动态设置,所以如果你想激活哈希随机化,你必须重新启动解释器。

如果你想让当前解释器产生的新进程表现得好像那个值是以前设置的一样,那么假设你正在运行一个支持 putenv 的平台。生成新进程时,默认情况下,它会继承当前进程的环境。您可以使用一个简单的脚本对此进行测试:

#check_environ.py
import os
import subprocess

os.environ['A'] = '1'
proc = subprocess.call(['python', '-c', 'import os;print(os.environ["A"])'])

产生:

$ python check_environ.py
1

请注意,putenv 实现(例如在 Mac OS X 中)存在已知错误,它会泄漏内存。所以要尽量避免修改环境。

关于python - os.environ ['PYTHONHASHSEED' ] 可以从应用程序中动态设置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com