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