EspressoBin シングル ボード コンピューター (aarch64) で python3 を実行しようとしています。Marvell のopenembeddedディストリビューションを使用して Linux ディストリビューションを構築し、 python3
.
問題は、python の検索パス/環境変数が設定されていないことです。
python3 を起動しようとすると、次のようになります。
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Current thread 0x0000007faef06000 (most recent call first):
Aborted
ただし、次の場合:
$ export PYTHONHOME="/usr/lib64/python3.5/"
$ export PYTHONPATH="/usr/lib64/python3.5/:/usr/lib64/python3.5/lib-dynload"
$ python3
Python 3.5.1 (default, Jan 14 2019, 23:24:54)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
その後、すべてが魔法のように機能します。
問題は...これらは通常どこで/どのように設定されているのですか? Ubuntu と比較してみましたが、何らかの理由でそれらの環境変数がまったく存在しません。sys.pathのドキュメントを確認したところsys.path
、「インストールに依存するデフォルトに加えて」PYTHONPATH からデータが取り込まれていることがわかりました。それで、Ubuntuの「インストールに依存するデフォルト」には正しいパスが事前に設定されていると思いますか?
私の現在の解決策は、これらの 2 つの環境変数を/etc/environment
と/etc/profile
(ssh 接続の場合) に追加することですが、これはハックな回避策のようで、正しく実行したいと考えています。