不能 运行 基本的 PyFlink 例子

Can't run basic PyFlink example

我有这个玩具管道

from pyflink.datastream import StreamExecutionEnvironment


def pipeline():
    # Create environment
    env = StreamExecutionEnvironment.get_execution_environment()
    env.set_parallelism(1)

    ds = env.read_text_file('file:///home/user/myfile.json')
    # ds.map(lambda i: i)
    ds.print()

    # Execute job
    env.execute('DynamicStockpilePipeline')


if __name__ == '__main__':
    pipeline()

那 运行 很好,但每次我尝试取消注释映射阶段时,无论是虚拟内联 lambda 还是 MapFunction,它都会爆炸说:

Caused by: java.io.IOException: Failed to execute the command: python
-c import pyflink;import os;print(os.path.join(os.path.abspath(os.path.dirname(pyflink.__file__)), 'bin')) output: Traceback (most recent call last):   File "<string>",line 1, in <module> ModuleNotFoundError: No module named 'pyflink'

我正在使用 pyenv 3.8 解释器,有人知道基本数据源和输出 运行 是怎么来的,但是地图上说缺少 pyflink 模块吗?

附录:这只发生在 PyCharm 上,当我 运行 控制台上的脚本时不会发生,所以我担心它是 PyCharm 和 pyenv 之间的东西

或许可以post报错时的代码

根据上下文,这里报错可能是使用错误,print函数需要跟在map函数后面

from pyflink.datastream import StreamExecutionEnvironment


def pipeline():
    # Create environment
    env = StreamExecutionEnvironment.get_execution_environment()
    env.set_parallelism(1)

    ds = env.read_text_file('file:///home/user/myfile.json')
    ds.map(lambda i: i).print()

    # Execute job
    env.execute('DynamicStockpilePipeline')


if __name__ == '__main__':
    pipeline()

我通过将 pyenv 3.8 分配为虚拟环境而不是在 PyCharm 中从系统解释器选项分配 pyenv 3.8 来摆脱这个错误。 我猜关于 pythonpath 的一些东西被前一个选项破坏了