当我回应$JAVA_HOME
时,我正在获得Java的路径。 Hadoop也在运行,但由于此错误,pydoop安装失败。
Traceback (most recent call last):
File "setup.py", line 54, in <module>
raise RuntimeError("java home not found, try setting JAVA_HOME")
RuntimeError: java home not found, try setting JAVA_HOME
我使用sudo python setup.py install --skip-build
运行setup命令。
作为非root用户收到此错误
运行安装
运行install_lib
创建/usr/local/lib/python2.7/dist-packages/pydoop
错误:无法创建'/usr/local/lib/python2.7/dist-packages/pydoop':权限被拒绝
答案 0 :(得分:5)
当你使用sudo运行你的设置时,它在root帐户下运行,可能没有定义JAVA_HOME。
您可以选择:
答案 1 :(得分:2)
@alko是对的。如果您在帐户下设置hadoop PATH或JAVA_HOME,则很难直接解决。为root设置所有环境是复杂且不必要的。
但您只能在自己的帐户下安装pydoop。将它安装到〜/ .local / lib / pythonX.X / site-packtes / pydoop-X.X.X / ...路径。
如果您下载源tar文件,请使用此命令。
python setup.py install --user
或者
pip install pydoop --user
答案 2 :(得分:2)
我在安装pydoop时遇到了同样的问题,虽然我正确设置了JAVA_HOME&#34;导出JAVA_HOME = myJavaHomePath&#34;,我仍然得到同样的错误说&#34; RuntimeError:java home not found,try设置JAVA_HOME&#34;。
最后,我通过修改函数来解决它&#34; def get_java_home()&#34;在文件jvm.py中,它位于路径&#34; / pydoop / pydoop / utils&#34;中,如错误消息中所示。
我只是注释了行返回os.environ [&#34; JAVA_HOME&#34;]并添加了行返回&#34; / usr / lib / jvm / java-7-openjdk-amd64&#34;在try子句中,如下所示。 / usr / lib / jvm / java-7-openjdk-amd64是我电脑上的JAVA_HOME。
def get_java_home():
try:
#return os.environ["JAVA_HOME"]
return "/usr/lib/jvm/java-7-openjdk-amd64"
except KeyError:
raise RuntimeError("java home not found, try setting JAVA_HOME")