如何在 HDP 2.6 上启用 Python3 支持
How to Enable Python3 Support on HDP 2.6
HDP 2.6(HortonWorks 数据平台)不支持 Python3。
虽然 Python3(或 Anaconda3)受到许多数据科学家的高度赞赏。
如何在 HDP 2.6 上启用 Python3 支持?
限制在几个文件中
- /usr/bin/hdp-select
- /etc/hadoop/conf/topology_script.py
2to3 应用程序可用于转换 Python 文件以支持 Python3。
2to3 -w /usr/bin/hdp-select
2to3 -w /etc/hadoop/conf/topology_script.py
对 /etc/hadoop/conf/topology_script.py 稍作改动以同时支持 Python2 和 Python3.
虽然在这些更改之后,knox 无法重新启动。
经过调查,尽管更改使 python 代码可在 Python2 和 Python 上运行。
行为略有不同。
Knox重启时会执行以下命令
ambari-python-wrapper /usr/bin/hdp-select packages
原始脚本输出类似于
Packages:
accumulo-client
accumulo-gc
...
2to3 更改后,脚本输出将类似于
Packages:
(' ', 'accumulo-client')
(' ', 'accumulo-gc')
两者的输出有一定的不同。而 HDP 使用这些标准输出作为接口。
效果可以归结为以下代码。两个打印语句有不同的输出。
pkg = "knox-server"
print " ", pkg
print(" ", pkg)
将打印语句更改为 print(" ", pkg)
修复了这个问题
HDP 2.6(HortonWorks 数据平台)不支持 Python3。 虽然 Python3(或 Anaconda3)受到许多数据科学家的高度赞赏。
如何在 HDP 2.6 上启用 Python3 支持?
限制在几个文件中
- /usr/bin/hdp-select
- /etc/hadoop/conf/topology_script.py
2to3 应用程序可用于转换 Python 文件以支持 Python3。
2to3 -w /usr/bin/hdp-select
2to3 -w /etc/hadoop/conf/topology_script.py
对 /etc/hadoop/conf/topology_script.py 稍作改动以同时支持 Python2 和 Python3.
虽然在这些更改之后,knox 无法重新启动。
经过调查,尽管更改使 python 代码可在 Python2 和 Python 上运行。 行为略有不同。
Knox重启时会执行以下命令
ambari-python-wrapper /usr/bin/hdp-select packages
原始脚本输出类似于
Packages:
accumulo-client
accumulo-gc
...
2to3 更改后,脚本输出将类似于
Packages:
(' ', 'accumulo-client')
(' ', 'accumulo-gc')
两者的输出有一定的不同。而 HDP 使用这些标准输出作为接口。
效果可以归结为以下代码。两个打印语句有不同的输出。
pkg = "knox-server"
print " ", pkg
print(" ", pkg)
将打印语句更改为 print(" ", pkg)
修复了这个问题