Collectd内でPython 3インタープリターを使用したいのですが、インタープリターのパスまたはバージョンを設定する(文書化された)オプションがなく、デフォルトでPython 2つのインタプリタも私のシステム(/usr/bin/python2.7
)にインストールされています。
私のPython 3インタプリタは/usr/bin/python3
にあり、/usr/bin/python
はそれにシンボリックリンクされています。 "envpython"と "python"を実行すると、両方ともPython 3インタプリタ。
CollectdのPythonプラグインの言及Python 3 :)の ドキュメント (不明で未完成のIMOに見えます)
エンコーディング名-collectdに渡すUnicodeオブジェクトのデフォルトのエンコーディング。このオプションを省略すると、デフォルトでascii on Python 2およびutf-8on 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のバージョンはすべて使用されますモジュールをビルドし、そのバージョンを使用してプラグインを実行します。