「pipinstall-e ...」を実行してgitリポジトリからインストールする場合、#egg = somenameを指定する必要があります。そうしないと、pipが文句を言います。例えば:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
この「卵」文字列の意味は何ですか?
「pipinstall-e ...」を実行してgitリポジトリからインストールする場合、#egg = somenameを指定する必要があります。そうしないと、pipが文句を言います。例えば:
pip install -e git://github.com/hiidef/oauth2app.git#egg=oauth2app
この「卵」文字列の意味は何ですか?
回答:
per pip install -h "egg"文字列は、インストールの一部としてチェックアウトされるディレクトリです。
project-name.egg-info/top_level.txt
が作成されているはずです。このファイルの内容をegg
パラメーターの値として使用します。
egg=...
設定が実際に重要かどうかわからないようです。インストールしているパッケージのtop_level.txtファイルに複数のエントリがあります。name
スクリプトが使用するkwargsetup.py
だけでなく、任意の値にも一致させることを試みました。結果はどちらの方法でも同じようです。をpip install https://...
必要としない構文を使用してインストールしていることに注意してください-e
。
pipがそのURLで何を期待するかを認識できるように、#egg = Packageを含める必要があります。https://pip.pypa.io/en/stable/reference/pip_install/#vcs-supportを参照してください
pip install -h
、Source will be checked out into src/PACKAGE (lower-case) and installed in-place (using setup.py develop)
私は...それは他の場所で使用されていることはよく分からない
https://pip.pypa.io/en/stable/reference/pip_install/#vcs-supportによると:
URLサフィックス「egg =-」の「プロジェクト名」コンポーネントは、pipがメタデータをダウンロードして分析する前に、依存関係ロジックでpipがプロジェクトを識別するために使用します。卵名のオプションの「バージョン」コンポーネントは機能的に重要ではありません。これは、使用されているバージョンに関する人間が読める手がかりを提供するだけです。setup.pyがプロジェクトのルートにないプロジェクトの場合、「サブディレクトリ」コンポーネントが使用されます。「サブディレクトリ」コンポーネントの値は、プロジェクトのルートからsetup.pyが配置されている場所までのパスである必要があります。
このことから、egg値は依存関係のチェックにのみ使用されると推測します。したがって、慣例により、some-pypi-package-name
含まれているフォルダー(ie some_pypi_package_name
)ではなく、パッケージ名(ie )を使用する必要があると思います。
Eggは、バンドルされたPythonコードです。git URLでは、eggはプロジェクト名です。 VCSサポート
通常、PythonパッケージはPypiからインストールされるため、パッケージ名とバージョンのみを指定します(または、指定しない場合は最新バージョンを想定します)。次に、Pypiは必要な卵を検索し、pipがそれをインストールします。 pip install celery
公開された最新のeggをpip install celery[redis]
インストールし、同じceleryパッケージを含む別のeggをインストールし、celeryのsetup.pyでredisの依存関係としてリストされているパッケージから最新のeggをインストールします。
gitおよびgitlabパスでは、を指定します/{user|group}/{repository}.git@{tag}#egg={package-name}
。との間に違いが#egg=celery
あります#egg=celery[redis]
、彼らは両方とも同じソースコードから来ます。
「タグ」は、実際のタグに加えて、ブランチまたはコミットハッシュにすることもできます。master
指定しない場合と想定します。
たとえば、git+https://github.com/celery/celery.git#egg=celery==4.3.0
マスターブランチをチェックアウトしてインストールします。バージョン番号を指定した場合でも、インストールでは考慮されません。バージョン番号は無視されます
gitまたは他のVCSURLを介してインストールする場合は、必要なバージョンのタグまたはハッシュを見つける必要があります。たとえば、git+https://github.com/celery/celery.git@v4.3.0#egg=celery
「v4.3.0」とタグ付けされたコミットをチェックアウトし、そのソースコードからパッケージをインストールします。メンテナがリポジトリにひどく誤ったタグを付けていないと仮定すると、そのようなバージョンを取得できます。
pip install
ドキュメントは語る#egg=name
が、明確な答えを与えるものではありません。