Flink运行python文件失败,错误为“0”;PyFlink不支持3.5之前的Python版本;

Flink运行python文件失败,错误为“0”;PyFlink不支持3.5之前的Python版本;,python,apache-flink,pyflink,Python,Apache Flink,Pyflink,5月1日增加: 我看到了,也许有帮助 我的系统是CentOS7,python版本3.6.8,pyflink版本1.10.0 我正在跟踪并尝试运行pyflink文件;但我不断地得到下面的错误 我尝试使用选项-pyarch和-pyexec-venv.zip/venv/bin/python3运行它,但它没有用。 我还将t_env.get_config().set_python_executable(“python3”)添加到py文件中,但仍然存在相同的错误: [root@localhost pyfl

5月1日增加:
我看到了,也许有帮助


我的系统是CentOS7,python版本3.6.8,pyflink版本1.10.0
我正在跟踪并尝试运行pyflink文件;但我不断地得到下面的错误
我尝试使用选项-pyarch和-pyexec-venv.zip/venv/bin/python3运行它,但它没有用。
我还将t_env.get_config().set_python_executable(“python3”)添加到py文件中,但仍然存在相同的错误:

[root@localhost pyflink]# flink run -m  localhost:8081  -pyarch venv.zip -pyexec venv.zip/venv/bin/python3  -py test_split_label.py 
Traceback (most recent call last):
  File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/root/wyl/test_file/pyflink/test_split_label.py", line 58, in <module>
    from pyflink.datastream import StreamExecutionEnvironment
  File "/tmp/pyflink/89713583-7229-4c30-93c9-4d543c360437/bd1f0746-4704-44e2-ba9e-3ef2bea03354pyflink.zip/pyflink/__init__.py", line 23, in <module>
RuntimeError: Python versions prior to 3.5 are not supported for PyFlink [sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)].
org.apache.flink.client.program.OptimizerPlanEnvironment$ProgramAbortException
    at org.apache.flink.client.python.PythonDriver.main(PythonDriver.java:87)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:321)
    at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:205)
    at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:138)
    at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:664)
    at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)
    at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:895)
    at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:968)
    at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
    at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:968)

似乎我应该设置一些环境变量?但我不知道我应该设置什么名称和路径。现在我有一个$FLINK_的家。

非常感谢您的帮助

这是因为您使用的客户端的python环境是2.7。api设置python可执行文件的作用是在集群端设置python可执行文件。因此,如果您的PyFlink版本是1.10,那么您需要在3.5+python环境中使用VirtualEnvironment,您可以参考文档。
在PyFlink 1.11中,您可以直接配置
PyFlink_客户端_可执行文件
,以在客户端分离python可执行文件。

这是因为您使用的客户端的python环境是2.7。api设置python可执行文件的作用是在集群端设置python可执行文件。因此,如果您的PyFlink版本是1.10,那么您需要在3.5+python环境中使用VirtualEnvironment,您可以参考文档。
在PyFlink 1.11中,您可以直接配置
PyFlink_客户端_可执行文件
,以在客户端分离python可执行文件。

从错误回溯来看,flink似乎正在尝试使用python 2.7,它可能也安装在您的操作系统上。可能是flink安装在了错误的python环境中?你能检查一下Flink安装的路径吗?@piratenijas谢谢你的回答,我已经检查了路径,
[root@localhostpyflink]#pwd/usr/local/lib/python3.6/site-packages/pyflink
该文件可以与命令
pythonxxx.py
或pyflink-shell.sh配合使用。我真的很困惑为什么它在使用
flink run-py
时失败了。您可以尝试将shell中的
PYTHONPATH
设置为正确的python。类似于导出PYTHONPATH=@piratenijas的东西也会出现相同的错误。我修改了
PYTHONPATH
export PYTHONPATH=/usr/bin/python3
,对吗?我对
Python
的软链接如下
alias Python=/usr/bin/python3
。但仍然会出现错误。@snakecharmerb我有一行类似
#的代码/usr/bin/env python3
。从错误追踪来看,flink似乎正在尝试使用python 2.7,它可能也安装在您的操作系统上。可能是flink安装在了错误的python环境中?你能检查一下Flink安装的路径吗?@piratenijas谢谢你的回答,我已经检查了路径,
[root@localhostpyflink]#pwd/usr/local/lib/python3.6/site-packages/pyflink
该文件可以与命令
pythonxxx.py
或pyflink-shell.sh配合使用。我真的很困惑为什么它在使用
flink run-py
时失败了。您可以尝试将shell中的
PYTHONPATH
设置为正确的python。类似于导出PYTHONPATH=@piratenijas的东西也会出现相同的错误。我修改了
PYTHONPATH
export PYTHONPATH=/usr/bin/python3
,对吗?我对
Python
的软链接如下
alias Python=/usr/bin/python3
。但仍然会出现错误。@snakecharmerb我有一行类似
#的代码/文件头中的usr/bin/env python3
[root@localhost pyflink]# python
Python 3.6.8 (default, Aug  7 2019, 17:28:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=6, micro=8, releaselevel='final', serial=0)