在Python 3中使用collectd

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

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

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

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

但是这并不能说明如何真正使用Python 3,而Google似乎也不知道。

您可能需要重新编译collectd。

看看这里:

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

从我所能看到的(如果我错了,请纠正我)。 #include <Python.h>#include "cpython.h"静态构buildpython版本。 因此,无论您当前在LDpath中的Python版本是否将用于构build模块,该版本都将用于执行该插件。