os.environ['KMP_DUPLICATE_LIB_OK'] 实际上是做什么的?

4

我在尝试在jupyter上使用pytorch时遇到了一些问题(找不到模块)。我使用了pip install,但我的内核仍然失败。 然而,在我的jupyter笔记本中添加了以下代码后,我成功地使用了pytorch

但是,我可以知道这段代码是做什么的吗?特别是KMP_DUPLICATE_LIB_OK

谢谢!

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
1个回答

7
它将环境变量KMP_DUPLICATE_LIB_OK设置为True。这与在命令行上运行export KMP_DUPLICATE_LIB_OK=True(取决于使用的shell)相同。
环境变量是程序的一种“环境”输入,可用于保存有关程序运行环境的一般信息 - 因此得名 - 例如当前用户名、主目录和PATH。(其中许多是冗余的,只是出于历史原因而保留的,当它们与实际数据不同步时很麻烦)
由于它们是“环境”的 - 它们可以从任何子进程中的任何地方访问 - 因此它们也可以成为启用各种黑客和解决方法的便捷方式,例如LD_PRELOAD
显然(我没有找到好的来源),特定变量KMP_DUPLICATE_LIB_OK=True告诉OpenMP如果它注意到加载了两份OpenMP,则不要抱怨。这并不一定意味着它会起作用,但这意味着它不会阻止您尝试使其工作。

谢谢您的回复!我可以问一下OpenMP在这里是什么意思吗? 为了背景,我添加了这行代码,以便能够导入pytorch而不使我的内核失败。 - Olympian Collections
@OlympianCollections 是一个显然被 PyTorch 使用的库。 - user253751

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接