这很奇怪,因为自从我将 myOS 从 OSX MountainLion 更新到 Mavericks(DeveloperPreview5.1) 后,这种行为就被破坏了
我在 SublimeText3 插件代码中使用Python3.3中的subprocess函数。这里,子进程 Popen节点
p = subprocess.Popen(['node', '-v'],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
显然,我已经使用nvm安装了节点,并且由于此代码在 的上下文中运行/Applications/
,所以我测试的node -v
命令肯定适用于 zsh 和 bash 上的路径设置。
事实上,我在 OSX MountainLion 上对代码进行了彻底的测试,所以认为它没有错;但是,昨天,我将 OSX 升级到 Mavericks(DeveloperPreview5.1),发现代码有错误。
FileNotFoundError: [Errno 2] No such file or directory: 'node'
确保我已将代码修改为
p = subprocess.Popen(['git', '--version'],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
这一次,我看到了预期的结果 git --version
。
所以,显然,我认为node
路径在 SublimeText3 上下文中无法被 python3.3 识别,但我确保路径在 bash/zsh 下工作。
除了在这里问之外,我无能为力。请指教。谢谢。
编辑:我认为这是由于 python3.3 + OSX Maverics 的路径检测错误
当我给出完整的节点路径时,它可以工作。