1. ホーム
  2. python

Python egg cache (PYTHON_EGG_CACHE) とは何ですか?

2023-11-20 18:43:50

質問

開発機で Python 2.6.1 から 2.6.4 にアップグレードしたところ、Python スクリプトを起動すると次のようなメッセージが表示されるようになりました。

egg cache にファイルを展開できません。

次のエラーが発生しました。 に展開しようとしているときに、次のエラーが発生しました。 Python egg cache に展開しようとしているときに、次のエラーが発生しました。

[Errno 13] パーミッションが拒否されました。 '/var/www/.python-eggs' です。

Python egg のキャッシュディレクトリは に現在設定されています。

/var/www/.python-eggs

おそらくあなたのアカウントには への書き込み権限がないのでは? その場合は キャッシュディレクトリを変更するには 環境変数 PYTHON_EGG_CACHE を設定することで、キャッシュディレクトリを変更できます。 環境変数を設定して、キャッシュディレクトリを変更することができます。 アクセス可能なディレクトリを指すように設定します。

には何もありません。 python docs には何もないので、このディレクトリをどこに置くか、そして何のために使うのか、ベストプラクティスに関して少し困っています。

Python egg cache が何であるか、誰か説明できますか?

また、なぜ/どのように、それが site-packages ディレクトリに格納されます。

どのように解決するには?

調べたところ、いくつかの卵はzipファイルとしてパッケージ化されており、そのように保存されたものをPythonの site-packages ディレクトリに保存されます。

これらの zip された卵は、実行する前に解凍する必要があるため、展開されたディレクトリを PYTHON_EGG_CACHE ディレクトリに展開され、デフォルトでは ~/.python-eggs (ユーザーのホームディレクトリにあります)です。これが存在しないと、アプリケーションを実行しようとしたときに問題が発生します。

いくつかの修正があります。

  1. を作成します。 .python-eggs ディレクトリを作成し、そのユーザのホームディレクトリに書き込み可能にします。
  2. 解凍用のグローバルディレクトリを作成する(例. /tmp/python-eggs ) を作成し、環境変数 PYTHON_EGG_CACHE をこのディレクトリに設定してください。
  3. を使用します。 -Z を使用する場合は easy_install を使用してインストール時にパッケージを解凍します。