当前位置: 首页 > 知识库问答 >
问题:

运行Apache Phoenix命令时的Python兼容性问题

司马振国
2023-03-14
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$PATH:$JAVA_HOME/bin"
export PATH="/home/vijee/anaconda3/bin:$PATH"

export HADOOP_HOME=/home/vijee/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH="$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin"
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

export ZOOKEEPER_HOME=/home/vijee/apache-zookeeper-3.6.2-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export HBASE_HOME=/home/vijee/hbase-1.4.13-bin
export PATH=$PATH:$HBASE_HOME/bin

export PHOENIX_HOME=/home/vijee/apache-phoenix-4.15.0-HBase-1.4-bin
export PATH=$PATH:$PHOENIX_HOME/bin
(base) vijee@vijee-Lenovo-IdeaPad-S510p:~/apache-phoenix-4.15.0-HBase-1.4-bin/bin$ psql.py localhost $PHOENIX_HOME/examples/WEB_STAT.sql $PHOENIX_HOME/examples/WEB_STAT.csv $PHOENIX_HOME/examples/WEB_STAT_QUERIES.sql
Traceback (most recent call last):
  File "/home/vijee/apache-phoenix-4.15.0-HBase-1.4-bin/bin/psql.py", line 57, in <module>
    if hbase_env.has_key('JAVA_HOME'):
AttributeError: 'dict' object has no attribute 'has_key'
$ python --version
Python 3.8.3

如何解决这个问题?

共有1个答案

陈马鲁
2023-03-14

简单搜索一下,它看起来像是从2017年的HBASE-1.4,而最新的稳定是2.2.5...发布说明暗示它可以与Python 3一起工作

考虑简单地使用较新的jar Apache归档链接来创建稳定的文件

在最新的Apache Phoenix代码中,至少psql.py确实支持Python 3 https://github.com/Apache/Phoenix/blob/master/bin/psql.py,因此您应该能够获得一个比现有版本更新的版本。

这可以在最近的提交中看到

  • 在GitHub上按文件提交历史记录:https://github.com/apache/phoenix/commits/master/bin/psql.py
  • 为Python3支持提交中的被修复

如果必须使用1.4.x,则可以使用Python 2运行psql.py。大多数操作系统将接受并行安装它们,尽管这可能会使某些依赖项管理变得混乱,而且这不是一个可维护的解决方案。

 类似资料:
  • Django 的目的,是要与多个不同的 Python 版本兼容。

  • 第一个支持Python 3的版本是Django 1.5。感谢six的兼容层,无需对代码做出任何改动,就可以让你的代码同时在Python 2 (≥ 2.6.5)和Python 3 (≥ 3.2)上运行。 本文档主要针对希望支持Python 2和3的可插拔应用程序的作者。它还描述了适用于Django代码的指南。 Philosophy 本文档假定您熟悉Python 2和Python 3之间的更改。如果你

  • 问题内容: 我尝试运行此脚本: 现在的问题是:我怎样才能把这些变量,,到变量? 问题答案: Python有很多执行字符串格式化的方法。最简单的方法之一就是将字符串的各个部分简单地串联在一起:

  • 我一直在我的笔记本电脑上使用lwjgl和GLSL 1.3进行一个项目。我的着色器在我的笔记本电脑上编译得很好,但是,当尝试在我的桌面上编译相同的着色器时,它有一个更新的显卡,我收到一个错误,说明着色器无法编译,因为着色器中存在错误。但是,着色器日志不会输出任何错误。我认为GLSL向后兼容它自己。 返回 我假设它与标准的GLSL 3.30相同。这是一个示例vertandfrag着色器,它适用于我的笔

  • 问题内容: 我需要从python运行此linux命令,并将输出分配给变量。 我试过使用pythons命令库来做到这一点。 但是a结束了。我得到的输出是: 但预期的输出是: 有人知道如何阻止输出中断吗?有人可以建议其他方法吗? 问题答案: 显然限制了其输出以适合终端的假定宽度。您可以使用环境变量或选项覆盖此宽度。 该模块已弃用。使用得到的输出,并在Python进行过滤。不要按照其他答案的建议使用,在

  • 问题内容: 我创建了以下名称为的命令文件: 当我从命令行运行上述脚本时: 它运行成功。 但是,当我在python中尝试以下操作时: 我得到错误: 问题答案: 您的命令将像这样运行WinSCP: 什么是无效的语法。。之后不能有空格。 这应该工作:

  • 问题内容: 我运行一个包含此行的python脚本 然后,我在服务器上运行相同的代码,并收到以下错误消息 因此,我要做的就是print bashCommand在运行之前,在终端中插入一个比命令更清晰的信息os.system()。 当然,我再次收到错误(由引起os.system(bashCommand)),但是在该错误出现之前,它会在终端中打印命令。然后我只是复制了输出,然后将复制粘贴到终端中,然后按

  • 根据Artem Bilan在这篇random gitter线程中的说法,Spring-Boot2仅与spring-kafka 2.1.x兼容。我找不到任何文件说明这一点。 考虑到所有这些,这是我唯一的选择: > 升级到kafka 1.0,因为spring-kafka 2.1仅与kafka 1.0兼容。 是否存在允许Spring-Boot2和Spring-Kafka旧版本之间兼容的东西?