Я хотел бы использовать интерпретатор Python 3 в collectd, но нет (задокументированной) опции для установки пути или версии интерпретатора, и по умолчанию используется интерпретатор Python 2, который также установлен в моей системе (по адресу /usr/bin/python2.7
).
Мой интерпретатор Python 3 находится по адресу /usr/bin/python3
и /usr/bin/python
имеет символическую ссылку на него; запуск "env python" и "python" дает мне интерпретатор Python 3.
В документация (неясно и выглядит незаконченным IMO) в плагине collectd Python упоминается Python 3:
Имя кодировки - кодировка по умолчанию для объектов Unicode, передаваемых в collectd. Если вы опустите эту опцию, по умолчанию будет использоваться ascii на Python 2 и utf-8 на Python 3. Это жестко запрограммировано в Python и будет игнорировать все остальное, включая вашу локаль.
Но это не говорит о том, как на самом деле использовать Python 3 с ним, и Google, похоже, тоже не знает.
Возможно, вам придется перекомпилировать collectd.
Взгляните сюда:
https://github.com/collectd/collectd/blob/master/src/pyconfig.c
Из того, что я вижу (поправьте меня, если я ошибаюсь). В #include <Python.h>
и #include "cpython.h"
статически построить версию на Python. Таким образом, любая версия Python, которая в настоящее время находится в вашем LD Path, будет использоваться для сборки модуля, и эта версия будет использоваться для выполнения плагина.