Python(2.6.6 - EPD 6.3-1(32位))在使用
时找不到二进制可执行文件call(cmmd, shell=True)
在Mac OS 10.6.8上,从Eclipse / Pydev开始,并返回sh无法找到可执行文件。正在运行
print os.environ['PATH']
返回默认路径:
/usr/bin:/bin:/usr/sbin:/sbin
现在,从任何shell运行此可执行文件或脚本都不是问题,其路径添加在/ etc / profile,〜/ .profile和/ etc / paths
中有关如何配置Pydev的任何想法?运行配置似乎是有序的,即它选择正确的python版本。
注意:为清晰起见而编辑
答案 0 :(得分:2)
登录shell和非登录shell之间存在差异。当从Eclipse启动的python运行时,你的shell将作为非登录shell启动,它不会加载~/.profile
。 This article has the details。因此,在调用os.environ
之前,您需要确保subprocess.call
包含可执行文件所在的目录,或者您只需提供可执行文件的绝对路径,或者确保您的shell脚本(如果您的可执行文件)只是一个shell脚本)使用绝对路径或管理自己的PATH环境变量。您还可以将环境变量字典传递给subprocess.Popen
,以获得对子流程环境和许多其他方面的详细控制。