如果有任何想法可以让PyDev(eclipse)启用路径或符号链接来调用MacOS(/Linux)中的外部程序(/usr/local/bin/中的程序),请告诉我。
我想在eclipse中通过PyDev上的pygraphviz使用graphviz。但是,出现了错误消息,如"ValueError:程序点未在路径中找到“。或者"ValueError:路径中没有点“。
我猜到了下面类似的问题,原因可能是IDE(例如,PyDev),不允许路径调用外部命令,例如/usr/local/bin/dot。
原因是我可以像预期的那样在eclipse环境中执行graphviz。
- In terminal.app, the upper sample code could be perform just as expected. Off course, the python was same used in my eclipe.
- The same eclipse which run in the upper terminal.app by command "open ~/Application/Eclipse.app" can be performed the upper sample code just as expected. Off course, in the terminal.app the upper code can be performed.
- MacBookPro MacOS(10.10:yosemite)
- Eclipse Luna (Installed via homebrew-cask)
- PyDev 4.0
- Python 3.4 (installed by conda)
- PyGraphviz 1.3rc2 (built source codes gotten from GitHub)
- Graphviz 2.38.0 (Installed via homebrew)
- [pygraphviz ValueError: Program dot not found in path](https://stackoverflow.com/questions/15014465/pygraphviz-valueerror-program-dot-not-found-in-path)
- [(Python) ValueError: Program dot not found in path](https://stackoverflow.com/questions/13987353/python-valueerror-program-dot-not-found-in-path)
- [pygraphviz ValueError: Program dot not found in path (python)](https://stackoverflow.com/questions/22324459/pygraphviz-valueerror-program-dot-not-found-in-path-python)
发布于 2015-05-14 09:13:55
当您从终端运行程序时,它可以找到graphviz工具,因为它的位置包含在PATH环境变量中。这个环境变量是在您的~/.bash_profile中定义的,如果您在终端登录,就会执行这个环境变量。Eclipse不使用这个文件,因此不知道graphviz的位置。
因此,您的问题归结为“如何设置环境变量OS”。如果你这样说的话,谷歌会得到更多的结果,因为很多人都遇到过同样的问题。不幸的是,解决方案取决于您的OS版本,所以我不能在这里给您一个简短的答复。另外,其他人写的答案比我好得多。我认为this one可能是一个很好的起点。
发布于 2015-05-14 13:11:56
我根据你的建议用下面的方法解决了这个问题。
1.应答方法
用下面的代码添加Python的系统路径。
os.environ['PATH']表示系统路径的运算符。下面的代码添加了一个路径/usr/local/bin,其中有一个指向graphviz cui程序的符号链接文件到一个基于路径的/usr/bin:/bin:/usr/sbin:/sbin:'。
您可以使用以下代码找到您的系统基本路径。
import os
os.environ['PATH']='/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'
import os
print(os.environ.get('PATH'))2.尝试过的方法(这无法解决)
在/etc/ path .d/中添加系统路径
我添加了一个文件"Eclipse“,其中描述了/usr/local/bin到/etc/path.d/。但是这种方法并没有解决这个问题。
https://stackoverflow.com/questions/30230048
复制相似问题