py3compileエラー - ロケールエンコーディングを取得できません

py3compileエラー - ロケールエンコーディングを取得できません

python3.2を再インストールした後に呼び出すと、次のエラーが発生しますpy3compile

Fatal Python error: Py_Initialize: Unable to get the locale encoding
LookupError: no codec search functions registered: can't find encoding
Aborted

環境変数が欠落して問題になる可能性があることを知っています。しかし、どのように解決するのかわかりません。出力を確認しましたが、env PYTHONXXX変数が見つかりませんでした。

答え1

すでに誰かがこの問題に報酬を提供しているため、回答が遅れています。また、問題を再現しないと、回避策が機能していることを確認できません。ここでは解決策を提示するのではなく、解決策を提案するだけです。

説明したように、両方の変数を設定する必要があると思います。ここpy3compile特定のリソースがどこにあるかを知る必要があるからです。このPYTHONXXX変数で検索します。

だから

export PYTHONPATH='/usr/lib64/python3.21:/usr/lib64/python3.2/lib-dynload:/usr/lib64/python3.2/site-packages'
export PYTHONHOME='/usr/lib64/python3.2'

より具体的に

export PYTHONPATH='/path/to/pythondir:/path/to/pythondir/lib-dynload:/path/to/pythondir/site-packages'
export PYTHONHOME='/path/to/pythondir'

これで問題が解決します。

答え2

次のことを試してください(opkgを優先パッケージマネージャに置き換えます)。

 # opkg install python3-modules
 # opkg install python3-misc

答え3

voidlinuxでは、シンボリックリンクを設定してPYTHONHOMEデフォルトPYTHONPATHのpythonに再接続することに加えて、/usr/binこのバグが修正されましたpython3.5python2.7このパスは私が設定したパスで、Pythonが必要なプログラムに必要です。

パスを設定しても、ここでエラーは3.5解決されません。python3.5 Py_Initialize誰がシステムを維持するのは簡単だと言いましたか?

だから私たちは0個設置。オープンソースの世界では、より多くの人々がそれを採用することができれば良いでしょう。現在、libcurl OCamlの問題のため、voidlinuxでコンパイルする作業が進行中です。ほとんどのディストリビューションはパッケージ管理リポジトリにあります。

0installは、システムにインストールされている他のバージョンと競合しないか、0installを使用せずに必要な依存関係で実行するようにプログラムを完全にカプセル化することで、これらすべての問題を解決し、開発者が直接提供するため、ユーザーシステムと開発者間のリンクを削除するため、パッケージを維持します管理時間を節約します。すべてのシステムの0installパッケージ(zeroinstallは1つですcross platform package management system)。

関連情報