wiringpi
を利用する時など、python
を管理者権限で実行しないといけない時ってありますよね。
そんなとき以下のような感じで怒られた時の対策です。
私はラズパイ3にpyenv
を入れ、その上でpython3
へ設定した環境で起きました。
$ sudo python foo.py
Traceback (most recent call last):
File "bar.py", line x, in <module>
bar = bar()
.
.
.
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
要は管理者権限にすることでパスがわからなくなっているんだと思います。
ですので
$ sudo /home/pi/.pyenv/shims/python /home/pi/foo.py
とすればうまくいきます。