コマンドを使用してライブラリをインストールしました
pip install git+git://github.com/mozilla/elasticutils.git
githubリポジトリから直接インストールします。これはうまく機能し、私は私のrequirements.txt
でその依存関係を持ちたいです。 this のような他のチケットを見ましたが、それでも問題は解決しませんでした。私が何かを入れたら
-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
で使用して、さまざまな VCSからパッケージをインポートできます(git、hg、 bzr、svn) :
-e git://github.com/mozilla/elasticutils.git#Egg=elasticutils
また、特定のコミットを指すことも可能です。
-e git://github.com/mozilla/elasticutils.git@000b14389171a9f0d7d713466b32bc649b0bed8e#Egg=elasticutils
通常、あなたのrequirements.txt
ファイルは次のようになります。
package-one==1.9.4
package-two==3.7.1
package-three==1.0.1
...
Githubリポジトリを指定するために、package-name==
規約は必要ありません。
以下の例はGitHubリポジトリを使ってpackage-two
を更新します。 @
と#
の間のテキストは、パッケージの詳細を示します。
41b95ec
のコンテキストではrequirements.txt
)を指定します。package-one==1.9.4
git+git://github.com/path/to/package-two@41b95ec#Egg=package-two
package-three==1.0.1
master
)を指定してください。git+git://github.com/path/to/package-two@master#Egg=package-two
0.1
):git+git://github.com/path/to/[email protected]#Egg=package-two
3.7.1
)。git+git://github.com/path/to/package-two@releases/tag/v3.7.1#Egg=package-two
#Egg=package-two
はここでのコメントではないことに注意してください、それは 明示的にパッケージ名を述べることです
このブログ記事 では、このトピックについてさらに議論があります。
requirements.txt
では、pip 7.0の時点でgitリポジトリ内のパッケージへの依存関係を指定するための以下の方法が可能です。1
[-e] git+git://git.myproject.org/SomeProject#Egg=SomeProject
[-e] git+https://git.myproject.org/SomeProject#Egg=SomeProject
[-e] git+ssh://git.myproject.org/SomeProject#Egg=SomeProject
-e [email protected]:SomeProject#Egg=SomeProject
Githubのためにそれはあなたがすることができることを意味します(省略された-e
に注意してください):
git+git://github.com/mozilla/elasticutils.git#Egg=elasticutils
なぜ追加の回答が必要なのですか?
他の回答で-e
フラグが多少混乱しましたので、ここで私の説明をします。
-e
または--editable
フラグは、パッケージが<venv path>/src/SomeProject
にインストールされているため、他の方法では配置されるはずの<venv path>/lib/pythonX.X/site-packages/SomeProject
には含まれていないことを意味します。2
ドキュメント
まず、git+git
またはgit+https
を使ってインストールします。 kronok
プロジェクトのbrabeion
のブランチのインストール例
pip install -e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#Egg=brabeion
次に、pip freeze > requirements.txt
を使ってrequirements.txt
で正しいことを見つけましょう。この場合、あなたは得るでしょう
-e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#Egg=brabeion-master
第三に、結果をテストします。
pip uninstall brabeion
pip install -r requirements.txt
Pip v1.5
以降、(2014年1月1日リリース: CHANGELOG 、 PR )あなたのモジュールを入れるためにgitリポジトリのサブディレクトリを指定することもできます。構文は次のようになります。
pip install -e git+https://git.repo/some_repo.git#Egg=my_subdir_pkg&subdirectory=my_subdir_pkg # install a python package from a repo subdirectory
注:pipモジュールの作成者として、できれば理想的にはモジュールをそれ自身のトップレベルのリポジトリに公開したいでしょう。それでも、この機能はサブディレクトリにpythonモジュールを含む既存のリポジトリには役に立ちます。それらがpypiにも公開されていない場合、あなたはこの方法でそれらをインストールすることを余儀なくされるかもしれません。