Pydoop Java home没有设置安装问题

时间:2013-12-03 13:35:22

标签: java python hadoop

当我回应$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':权限被拒绝

3 个答案:

答案 0 :(得分:5)

当你使用sudo运行你的设置时,它在root帐户下运行,可能没有定义JAVA_HOME。

您可以选择:

  • 为root导出正确的JAVA_HOME;
  • 或使用virtualenv在您当前用户下的虚拟环境中安装pydoop,而无需sudo;
  • 或使用setup options指定构建和安装目录,不需要root权限。

答案 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")