2

我正在尝试在 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
4

5 回答 5

3

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

于 2019-01-31T15:25:43.143 回答
2

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

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

于 2019-01-31T18:01:38.000 回答
1

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

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

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

于 2019-01-31T15:08:46.793 回答
1

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

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

于 2019-01-31T15:26:38.203 回答
1

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

于 2019-02-01T09:31:24.910 回答