将collectd 与Python 3 结合使用

5 python collectd

我想在collectd中使用Python 3解释器,但是没有(记录的)选项来设置解释器的路径或版本,并且它默认为也安装在我的系统上的Python 2解释器(位于/usr/bin/python2.7)。

我的 Python 3 解释器位于/usr/bin/python3/usr/bin/python与其符号链接;运行“env python”和“python”都给我Python 3解释器。

Collectd 的 Python 插件的文档(不清楚,在 IMO 看来尚未完成)提到了 Python 3 :

编码名称 - 传递给collectd 的Unicode 对象的默认编码。如果省略此选项,它将在 Python 2 上默认为 ascii,在 Python 3 上默认为 utf-8。这是在 Python 中硬编码的,将忽略其他所有内容,包括您的语言环境。

但这并没有告诉我们如何实际使用 Python 3,而且 Google 似乎也不知道。

Jos*_*ern 5

您可能需要重新编译collectd。

看看这里:

https://github.com/collectd/collectd/blob/master/src/pyconfig.c

据我所知(如果我错了,请纠正我)。并#include <Python.h>静态#include "cpython.h"构建 python 版本。因此,当前 LD 路径中的任何版本的 Python 都将用于构建模块,并且该版本将用于执行插件。