組織内でPythonスクリプトを配布するための軽量な方法を見つけようとすると、非推奨メッセージによって暗示されるpipの提案された状況はばかげています。
単一のパッケージをgitサーバー(ほとんどの組織が持っているもの)に_簡単に_配布できます...しかし、他のいくつかの内部パッケージに依存する可能性のあるパッケージを簡単に配布することはできません。
pipがdependency_links処理を削除すると、このスタイルの配布は完全に不可能になります。これは、これを非常に簡単にするnpm
ようなものとはまったく対照的です。
もちろん、暗黙的にしないでください。ただし、他の多くのgit依存関係を持つパッケージをpipインストールする1行のコマンドを同僚に送信できる簡単な方法が必要です。
理想的な解決策は、pipにgitリポジトリからのrequirements.txt
ファイルを処理させる方法です。これにより、リポジトリは他の要件を具体的に定義できます(これは、gitリポジトリのライブラリが確実に行うものであるため)。
パーフェクトは次のようになります。
pip install --follow-requirements git+http://my.internal.gitserver/internallibrary.git
たぶん、信頼できない要件のプロンプトを出しますか?
依存関係のリンクは、それらの置き換え(PyPIが理解し、それらに依存するパッケージをアップロードしないように強制できる)が実装されるまで削除されません。
@dstufftこの代替品は何ですか?
プライベートGitリポジトリに保存されている2つのパッケージPackageAとPackageBと、アプリケーションアプリがあります。 アプリはPackageAに依存し、PackageAはPackageBに依存します。 アプリの要件をインストールするときに、PackageAの依存関係としてPackageBを自動的にインストールする方法が見つかりませんでした。
@connorbodeリリースでdevpiインデックスを設定する方法については、pipをインデックスとしてdevpiにポイントすることができ、依存関係リンクは必要ありません。また、作業ネットワークでpypiをミラーリング/キャッシュします。
最も参考になるコメント
@dstufftこの代替品は何ですか?
プライベートGitリポジトリに保存されている2つのパッケージPackageAとPackageBと、アプリケーションアプリがあります。 アプリはPackageAに依存し、PackageAはPackageBに依存します。 アプリの要件をインストールするときに、PackageAの依存関係としてPackageBを自動的にインストールする方法が見つかりませんでした。