web-dev-qa-db-ja.com

トラブルシューティング方法Python "プラットフォームに依存しないライブラリ<prefix>が見つかりませんでした"

Fontcustomを使用して、svgファイルとfontforgeを使用してアイコンフォントを作成しようとしています。 OSX.7を使用しています。ただし、プログラムを実行するたびにエラーが発生します

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site`

Python/Unixの初心者として、どこでこれを解決しようとするのかさえ知りません。誰でもアドバイスを提供できますか? <prefix>および<exec_prefix>とは何を指しますか?

python --versionと入力すると、Python 2.7.1が返されます。また、ディレクトリ/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7にはモジュールの大きなリストがあり、site.pyは間違いなくそのフォルダにあります。コンピュータにモジュールを見つけさせるにはどうすればよいですか?

44
Lars

仮想環境を作成し、そのpythonインストールを削除した場合、同じエラーが発生します。 venvフォルダーをrm -rしてから、有効なpython場所で再作成し、pip install -r requirements.txtを実行すると、すべての設定が完了します(requirements.txtが正しいと仮定)。

43
Peter Mitrano

export PYTHONHOME=/usr/localを試してください。 PythonはOS Xの/usr/localにインストールする必要があります。

この答えは、私が予想していたよりも少し注目されました。もう少しコンテキストを追加します。

通常、Pythonは、パスprefix/libおよびexec_prefix/libでライブラリを探します。ここでprefixおよびexec_prefixは構成オプションです。PYTHONHOME環境変数が設定されている場合、prefixおよびexec_prefixの値が継承されます。PYTHONHOME環境変数が設定されていない場合、prefixおよびexec_prefixはデフォルトで/usr/localになります(また、prefix/exec_prefixを設定する他の方法があると思いますが、私はそれらに完全には精通していません)。

通常、エラーメッセージCould not find platform independent libraries <prefix>を受け取った場合、文字列<prefix>prefixの実際の値に置き換えられます。ただし、prefixの値が空の場合、質問に投稿されたやや不可解なメッセージが表示されます。空のprefixを取得する1つの方法は、PYTHONHOMEを空の文字列に設定することです。 PYTHONHOMEprefix、およびexec_prefixの詳細については、 公式ドキュメント を参照してください。

28
jayhendren

pYTHONHOMEを/ usrなどのpythonのbinファイルの親フォルダーに変更します。これは/ usr/binの親フォルダーです。

6
jimmy

私はこの問題を抱えていて、それを修正しようとして数時間を費やしました。パスを変更することでプレフィックスエラーを修正しましたが、まだエンコーディングインポートエラーが発生しました。これは、コンピューターを再起動することで修正されました。

(私がこれを書いたのは、この問題を抱える次の人が私がやったように数時間を費やす必要がないようにするためです。)

5
Erich

私のpycharm ceには同じエラーがあり、簡単に修正できました。誰かがそのエラーを持っている場合は、フォルダをアンインストールして削除し、ctrl+hドキュメント内にフォルダが見つからない場合は、ソフトウェアを再度インストールしてください。再び動作するはずです。

Pycharmフォルダーを消去する前に、scratchesフォルダーを必ず保存してください。

1
Jesus