繁体   English   中英

使os.environ与通过NSSM运行的Python一起使用

[英]Getting os.environ to work with Python run via NSSM

我陷入环境变量不匹配的问题。

我通过名为NSSM的程序在Windows 10上运行了Python脚本。

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

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

结果:我添加的任何变量均未显示。

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

起点是,NSSM使用Windows HKLM注册表: 源中的环境变量(请参阅底部)。 我不确定这是否是os.environ无法看到相关变量的原因。

我过去也很难使用os.environ.setdefault 相反,假设您要添加到PATH环境变量中,请执行以下操作:

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

编辑:

另外,要创建新变量:

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

事实证明,我的问题不在这个问题的范围之内。 @Recessive和@eryksun都谢谢你们的回答,这让我“闻起来香”。

原来我的问题是使用Python pathlib的Path.home()

  • 通过命令提示符运行时,它提取了HOMEPATH环境变量。
  • 通过NSSM运行时,它提取了USERPROFILE环境变量。

真正的问题是Path.home()中的差异。 由于NSSM在完全不同的文件夹中查找,因此未找到环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM