大きな違いはありますか
pip install -e /path/to/mypackage
とsetuptoolsバリアント?
python /path/to/mypackage/setup.py develop
大きな違いはありますか
pip install -e /path/to/mypackage
とsetuptoolsバリアント?
python /path/to/mypackage/setup.py develop
回答:
setup.py
直接呼び出さないようにしてください。パッケージをインストールしたことをpipに正しく伝えません。
とpip install -e
:
ローカルプロジェクトの場合、「SomeProject.egg-info」ディレクトリはプロジェクトパスを基準にして作成されます。これは
setup.py develop
、現在の作業ディレクトリに直接関連する「egg-info」を作成するだけの場合よりも優れている点の1つ です。
詳細:ドキュメント
setuptoolsのドキュメントも読んでください。
もう1つの違い:pip install -e
ホイールを
python setup.py develop
使用するが使用しない。
を使用するとinstall
、次のコマンドを使用して同じ動作を実現できます
pip install -e /path/to/package --no-use-wheel
ホイールの詳細:Pythonホイール
好むかもしれもう一つの違いは、pip install -e
中にあなたのプロジェクトが依存関係を持っている場合ということですinstall_requires
でsetup.py
、その後pip install -e .
ながら、ピップとの依存関係をインストールしpython setup.py develop
てインストールすることができますeasy_install
「卵-情報」を上記のように:、および問題が再び発生することがあります。カスタムgit URLで卵識別子を添付してinstall-requires
使用dependency_links
する場合、これは特に煩わしい場合があります。
pip install -e .
、基本的に、関連するPythonサイトパッケージディレクトリにシンボリックリンクが作成され、作業コピーが示されます。その作業コピーにコードの変更が加えられると、「インストール済み」バージョンに即座に反映されるため、インストールコマンドを再実行する必要はありません。これは主に、インストール可能なパッケージを表すリポジトリでの開発に役立ちますが、たとえば、絶対インポートのみを使用してモジュールのコレクションを作成する場合などにも便利です
さらに別の違い:python setup.py develop
プレリリースと見なされるバージョンで実行する場合(おそらく、リリースをチェックアウトしていないときにgitクローンから実行しているため)、依存関係のプレリリースのインストールを有効にします。一方、これらのプレリリースが必要な場合pip install --editable
は、--pre
明示的に渡す必要があります。
(誤って使用されたプレリリースのCIログを参照し、ここで修正済みビルドと比較してください。)