首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在林冠中使用不同路径的子过程?

在林冠中使用不同路径的子过程?
EN

Stack Overflow用户
提问于 2014-07-09 14:41:33
回答 2查看 137关注 0票数 0

我在~/.bin/中有一个可执行文件,它在我的PATH变量中,在我的shell中,在我的OS路径中(它出现在launchctl getenv PATH中)。当我执行

代码语言:javascript
运行
复制
subprocess.call(['myexecutable'])

从ipython开始工作,但是当我在冠层编辑器中执行相同的调用时,

代码语言:javascript
运行
复制
OSError: [Errno 2] No such file or directory 

此外,使用关键字shell=True也没有帮助。有人知道如何让我的命令在Canopy编辑器中运行吗?

编辑:

PYTHONPATH变量系统设置为launchctl setenv PYTHONPATH $PYTHONPATH:~/.bin似乎有效,但是当我尝试使用PATH变量时,同样的方法失败了。在冠层控制台中,os.environ.copy()最终显示了正确的带有~/.binPYTHONPATH,但PATH没有。

EN

回答 2

Stack Overflow用户

发布于 2014-07-09 15:13:55

您只需使用myexecutable的完整路径即可

代码语言:javascript
运行
复制
subprocess.call([os.path.expanduser(os.path.join("~", ".bin", 'myexecutable'))])

或者,可以显式地将~/..bin目录添加到正在使用的PATH中。

代码语言:javascript
运行
复制
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中添加以下内容

代码语言:javascript
运行
复制
setenv PATH $PATH:/homedir/.bin

(我没有OSX,也不能测试这个)。

票数 0
EN

Stack Overflow用户

发布于 2014-07-09 20:46:30

在OSX中设置环境变量是非常特殊的。有关链接,请参阅本文:https://support.enthought.com/entries/23665767-How-do-I-set-PYTHONPATH-and-other-environment-variables-for-Canopy-

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24656751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档