1. ホーム
  2. python

[解決済み] githubのソースを直接requirements.txtに記載する方法

2022-03-16 12:01:56

質問

コマンドを使用してライブラリをインストールしました。

pip install git+git://github.com/mozilla/elasticutils.git

で、Github のリポジトリから直接インストールします。 これは問題なく動作するので、この依存関係を私の requirements.txt . 他のチケットも見てみましたが これ が、私の問題を解決してくれませんでした。 もし私が以下のようなものを入れたら

-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev

の中に requirements.txt ファイルでは pip install -r requirements.txt の結果は以下のように出力されます。

Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
  Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))

要件ファイルのドキュメント を使ったリンクについては言及していません。 git+git というプロトコル指定子があるので、もしかしたらサポートされていないだけかもしれません。

どなたか解決策をご存じないでしょうか?

解決方法は?

通常、あなたの requirements.txt ファイルは次のようなものになります。

package-one==1.9.4
package-two==3.7.1
package-three==1.0.1
...

Github のレポを指定する場合、このメソッドは必要ありません。 package-name== という規約があります。

以下の例では package-two を GitHub リポジトリで使用します。の間のテキストは @# はパッケージの仕様を表します。

コミットハッシュを指定する ( 41b95ec が更新されたコンテキストで requirements.txt ):

package-one==1.9.4
git+https://github.com/path/to/package-two@41b95ec#egg=package-two
package-three==1.0.1

ブランチ名を指定する ( master ):

git+https://github.com/path/to/package-two@master#egg=package-two

タグを指定する ( 0.1 ):

git+https://github.com/path/to/[email protected]#egg=package-two

リリースを指定する ( 3.7.1 ):

git+https://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two

なお #egg=package-two はここではコメントではなく パッケージ名を明示的に記述する

このブログの記事 には、このテーマについてもう少し考察があります。