【问题标题】:How to configure Apama with Python plugin support如何使用 Python 插件支持配置 Apama
【发布时间】:2019-06-25 01:00:58
【问题描述】:

我正在尝试在 Apama 中使用 Python 插件。不幸的是,我在启动相关器时总是收到以下错误消息。

无法初始化相关器:无法初始化 Python 插入。将 AP_PYTHONHOME 设置为 python 的位置

如果我在本地测试它,应用程序将正常工作。但是一旦我切换到生产系统并尝试通过.mon 文件调用 Python 应用程序,就会发生此错误。

谁能告诉我为什么它不能初始化 Python?

使用以下命令配置并启动 Apama。

/correlator --config /opt/apama-rules/deploy --applicationLogLevel DEBUG -l /usr/apama/properties/apama/license/icense.xml
2019-01-31 13:39:27.479 ##### [140402990063488] - There are 2 CPU(s)
2019-01-31 13:39:27.479 ##### [140402990063488] - Correlator command line: ./correlator --config /opt/apama-rules/deploy --applicationLogLevel DEBUG -l /usr/apama/properties/apama/license/ApamaServerLicense.xml
2019-01-31 13:39:27.479 ##### [140402990063488] - Current Working Directory: /opt/Apama/bin
2019-01-31 13:39:27.479 ##### [140402990063488] - PATH: /opt/Apama/bin:/jre/bin:/bin:/jre/../bin:/sbin:/usr/sbin:/bin:/usr/bin
2019-01-31 13:39:27.479 ##### [140402990063488] - LD_LIBRARY_PATH: /opt/apama-rules/deploy/lib:/apamawork_10.3/lib:/opt/Apama/lib:/jre/lib/amd64/server:/jre/lib/amd64
2019-01-31 13:39:27.480 ##### [140402990063488] - Current UTC time: 2019-01-31 12:39:27, local timezone: TZ not set so using system default
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - port                     = 15903
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue size        = 10000
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue batch size  = 100
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue mode        = blocking
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_PLATFORM=amd64-rhel7
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = AP_PYTHONHOME=/opt/Apama/third_party/python/lib/python3.6/site-packages
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_LIBRARY_VERSION=10.3
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_JRE=/jre
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_ENVSET=10.3:/opt/Apama:amd64-rhel7
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_WORK=/apamawork_10.3
2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable     = APAMA_HOME=/opt/Apama
2019-01-31 13:39:27.480 ##### [140402990063488] - Using memory allocator                 = TBB scalable allocator
[...]
2019-01-31 13:39:27.717 ERROR [140402990063488] - Failed to initialize correlator: Could not initialise the Python plugin. Set AP_PYTHONHOME to the location of python

【问题讨论】:

  • 你能接受一个答案吗 :)

标签: python configuration apama


【解决方案1】:

确保导出环境变量 AP_PYTHONHOME=/python/ 的路径。一个例子,

导出 AP_PYTHONHOME=/usr/local/python/3.6.6

应该在您的 bash 配置文件中设置。 AP_PYTHONHOME 是在 python 安装过程中通过 --prefix 选项给出的父目录。

【讨论】:

    【解决方案2】:

    为了让相关器找到要加载的 python 库,环境变量 AP_PYTHONHOME 应设置为 python 的位置,而不是 python 站点包的位置。尝试将 AP_PYTHONHOME 设置为 /opt/Apama/third_party/python (假设这是您的 python 实际安装的位置)。我会注意到在你的 PYTHONPATH 上有 python 站点包很有用。

    【讨论】:

    • 感谢您的重播。我已将其更改为 /opt/Apama/third_party/python 但我得到了同样的错误。
    • @Hack:你能描述一下在这种情况下你是如何启动相关器的吗?相关器应从 Apama/bin/apama_env 文件的来源(source /opt/Apama/bin/apama_env)的命令提示符启动,并且当您设置 AP_PYTHONHOME 变量时,该环境不应设置正在使用安装。我会注意到不建议从安装的 bin 目录运行相关器,因为这可能会污染运行时文件的安装。
    • @Hack :我看到您进一步回复说您已成为 python 与 python3 的受害者。在linux上的Apama环境下,使用python3调用python解释器,它会执行$APAMA_HOME/third_party/python目录下Apama自带的python3解释器。见https://www.python.org/dev/peps/pep-0394/
    【解决方案3】:

    查看环境变量,您有: AP_PYTHONHOME=/opt/Apama/third_party/python/lib/python3.6/site-packages

    如果这是正确的目录,我会感到惊讶:我想你想要 AP_PYTHONHOME=/opt/Apama/third_party/python

    【讨论】:

      【解决方案4】:

      还有其他一些好的答案(它不会让我添加评论) - 但我会注意,如果您有完整安装(社区或其他)或 docker 映像,那么您不需要完全设置 AP_PYTHONHOME。当 Python 位于 Apama 安装中时,它将自动定位。

      如果您使用的是核心安装,那么您需要提供自己的 Python 安装并将 AP_PYTHONHOME 指向它。可以在此博客文章中找到相关文档:http://www.apamacommunity.com/using-python-plug-ins-with-the-apama-core-installation/

      【讨论】:

      • 感谢您的重播。好的,我发现启动服务时会加载环境变量。将完成以下操作: PYTHONPATH="$PYTHONPATH:$APAMA_HOME/third_party/python/lib/python3.6/site-packages" [...] epxort PYTHONPATH [...] print: :/opt/softwareag/Apama /third_party/python/lib/python3.6/site-packages 好像不允许shell脚本调用环境变量?
      • 嗯,很抱歉我错过了您的后续问题。我不是 100% 确定你的问题是什么。请注意,我们谈论的是 AP_PYTHONHOME 而不是 PYTHONPATH。您不提供的一件事是您如何安装 Apama。另外:您是否在 Apama 命令提示符内运行(已运行 source Apama/bin/apama_env)
      【解决方案5】:

      好的,问题是python默认版本链接到2.7 我将版本更改为版本 3。 别名 python='/usr/bin/python3'。

      【讨论】:

        猜你喜欢
        • 2015-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-11
        • 2020-01-22
        • 2016-09-06
        • 2020-07-17
        • 1970-01-01
        相关资源
        最近更新 更多