我在~/.bin/
中有一个可执行文件,它在我的PATH变量中,在我的shell中,在我的OS路径中(它出现在launchctl getenv PATH
中)。当我执行
subprocess.call(['myexecutable'])
从ipython开始工作,但是当我在冠层编辑器中执行相同的调用时,
OSError: [Errno 2] No such file or directory
此外,使用关键字shell=True
也没有帮助。有人知道如何让我的命令在Canopy编辑器中运行吗?
编辑:
将PYTHONPATH
变量系统设置为launchctl setenv PYTHONPATH $PYTHONPATH:~/.bin
似乎有效,但是当我尝试使用PATH
变量时,同样的方法失败了。在冠层控制台中,os.environ.copy()
最终显示了正确的带有~/.bin
的PYTHONPATH
,但PATH
没有。
发布于 2014-07-09 15:13:55
您只需使用myexecutable
的完整路径即可
subprocess.call([os.path.expanduser(os.path.join("~", ".bin", 'myexecutable'))])
或者,可以显式地将~/..bin目录添加到正在使用的PATH
中。
my_env = os.environ.copy()
my_env['PATH'] = "%s:%s" % (my_env['PATH'], os.expanduser("~/.bin"))
subprocess.call([myexecuteable], env=my_env)
如果您希望直接更改Can皮的路径,他们的网站建议在/etc/launchd.conf
中添加以下内容
setenv PATH $PATH:/homedir/.bin
(我没有OSX,也不能测试这个)。
发布于 2014-07-09 20:46:30
在OSX中设置环境变量是非常特殊的。有关链接,请参阅本文:https://support.enthought.com/entries/23665767-How-do-I-set-PYTHONPATH-and-other-environment-variables-for-Canopy-
https://stackoverflow.com/questions/24656751
复制相似问题