在 Python 3 中使用 collectd

在 Python 3 中使用 collectd

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

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

文档(不清楚并且在我看来还没有完成) collectd 的 Python 插件中提到了 Python 3 :

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

但这并没有告诉你如何真正地使用 Python 3,而且 Google 似乎也不知道。

答案1

您可能需要重新编译 collectd。

请看这里:

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

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

相关内容