【发布时间】:2013-02-26 21:11:53
【问题描述】:
正是它所说的。我可以设置每个用户的环境变量,无论是从 Windows > 键入“路径”,还是使用 RegEdit,甚至从 Python 脚本。
但如果我运行一个应用程序(例如从 Launchy 或从 Chrome 启动它),它不会获取新变量。我必须启动一个新的 cmd 或 Windows 资源管理器(我认为)才能获取新值。
现在,显然我可以在每次使用的基础上设置它们,但我想为我的帐户全局设置它们,也为我当时碰巧使用的任何进程设置它们。这可能吗?是否有可能(或更容易)从 Python 脚本中完成?
【问题讨论】:
-
看看this question。它是关于 Unix 的,但有评论说它可以在带有 cygwin 的 Windows 中工作。如果是这种情况,您也许可以使用任何调试器来做到这一点。
-
@rodrigo 这很不错,但看起来它只适用于从 cygwin 启动的进程。根据我看到的 Windows 文档,它们不允许您控制其他进程,只广播其他应用程序负责侦听/响应的消息。呸!
-
其中一位 cmets 说“它甚至可以在使用 cygwin 的 Windows 上运行,对于未使用 cygwin 编译的进程!”。我的猜测是,您可以简单地通过运行一个远程线程来执行您想要的操作,该线程使用适当的参数调用
putenv()(或SetEnvironmentVariable())。这正是调试器所做的。你可以想象编写一个工具来做到这一点,但不是在 Python 中!
标签: python windows environment-variables