我已经按照this article的描述添加了一个LaunchDaemon plist文件,创建了一个全局环境变量。但是我遇到了一些问题。
如果我调用:
问题:如何创建一个对所有程序可访问并在Windows和macOS上的Python中可用的环境变量?如果可能,我希望避免在python脚本中使用特定于操作系统的代码。我认为首选解决方案将是在env列表中出现QTBIN。
如果我调用:
env
QTBIN不在列表中。echo $QTBIN
没有返回值。/bin/launchctl getenv QTBIN
返回路径。
os.getenv("QTBIN")
访问QTBIN。然而,在macOS上执行此命令时,返回值为None。这使我认为它基于上述第1或第2个选项。问题:如何创建一个对所有程序可访问并在Windows和macOS上的Python中可用的环境变量?如果可能,我希望避免在python脚本中使用特定于操作系统的代码。我认为首选解决方案将是在env列表中出现QTBIN。
我的plist文件:/Library/LaunchDaemons/setenv.QTBIN.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>setenv.QTBIN</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>QTBIN</string>
<string>/usr/local/Cellar/qt/5.14.1/bin</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
不需重启加载环境变量的命令:
launchctl load -w /Library/LaunchDaemons/setenv.QTBIN.plist
.