得到操作系统环境通过NSSM运行Python

2024-09-19 20:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我被困在一个环境变量不匹配。你知道吗

我通过一个名为NSSM的程序在windows10上运行Python脚本。你知道吗

在运行时,我执行以下操作:

  1. 从文本文件加载参数
  2. 使用os.environ.setdefault(name, value)将其内容放入环境中。你知道吗
  3. 尝试使用os.environ[name]加载环境变量

你知道吗结果:任何变量我加了“不要出现”。你知道吗

我不知道为什么我添加的变量不可用。你能告诉我我做错了什么吗?

一个起点是NSSM使用windowshklm注册表中的环境变量:source(见下图)。我不确定这是否是os.environ看不到相关变量的原因。你知道吗


Tags: name程序脚本内容参数环境valueos
2条回答

我在过去也遇到过使用os.environ.setdefault的问题。相反,假设您试图添加到PATH环境变量中,请执行以下操作:

os.environ['PATH'] += ";" + the_path_to_the_file

编辑:

另外,要创建新变量:

os.environ['new_var'] = 'text'

原来我的问题超出了这个问题的范围。@隐性和@eryksun谢谢你们的回答,这让我“闻到了味道”。你知道吗

原来我的问题是使用Python pathlib的Path.home()。你知道吗

  • 当通过命令提示符运行时,它拉入HOMEPATH环境变量。你知道吗
  • 当通过NSSM运行时,它拉取USERPROFILE环境变量。你知道吗

这种差异是真正的问题。它没有找到环境变量,因为NSSM正在另一个文件夹中查找。你知道吗

相关问题 更多 >