[解決済み] Pythonパッケージとegg-infoディレクトリ
質問
egg-info ディレクトリがどのようにそれぞれのモジュールに関連付けられるか、どなたか説明してください。たとえば、私は次のようなものを持っています。
/usr/local/lib/python2.5/site-packages/quodlibet/
/usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/
egg-infoディレクトリは、対応するモジュールをsetuptools(easy_install)から見えるようにするためだと思いますよね?もしそうなら、setuptoolsはどのようにegg-infoディレクトリをモジュールディレクトリに結びつけるのでしょうか?
私が正しい道を進んでいると仮定して、例のために...。私の既存のパッケージを setuptools で見えるようにしたい場合、module ディレクトリと egg-info ディレクトリを site-packages ディレクトリにシンボリックリンクすればよいのでしょうか。私は自分でこれを試しただけですが、パッケージがsetuptoolsに見えるかどうかをテストする方法がよくわかりません。これをテストする方法も教えていただけるとボーナスポイントになります :)
私がこのすべてを理解しようとしている主な理由は、私のモジュールのいくつかをsite-packagesにシンボリックリンクしたいので、私はそれらに変更を加え、変更のたびにPyPIから卵を再インストールしなくてもそれらを使用するスクリプトに変更を表示させることができます。
どのように解決するのですか?
.egg-info ディレクトリは、egg のインストールに --single-version-externally-managed が使用された場合のみ作成されます。 通常は、egg をインストールすると、コードとメタデータの両方を含む単一のディレクトリ (または zip ファイル) が作成されます。
pkg_resources (これはメタデータを読み取るライブラリです) には、関数
require
という関数があり、パッケージの特定のバージョンを要求するために使用することができます。古いスタイルの通常のインポートでは、easy_install は .pth ファイルをハックして、egg ディレクトリを sys.path に取得します。single-version-externally-managed では、(システムの pacakging インフラストラクチャ、例えば rpm や dpkg によって) インストールされるバージョンが 1 つだけなので、このハッキングは必要ではありません。egg-info はまだ含まれており、アプリケーションのために
require
(あるいは他の pkg_resources のバインディング機構) を使用するアプリケーションのために、egg-info はまだ含まれています。
ハードリンクでパッケージをインストールしたい場合、 "setup.py develop" を使用することをお勧めします。これは setuptools のコマンドで、実際には egg をインストールしませんが、サイト全体で利用できるようにします。そのために、pkg_resources がそれを見つけられるように egg-link ファイルを作成し、通常の import がそれを見つけられるように .pth ファイルを操作します。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Python 言語を決定するには?
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例