461

プライベート GitHub リポジトリから Python パッケージをインストールしようとしています。パブリック リポジトリの場合、次のコマンドを発行すると問題なく動作します。

pip install git+git://github.com/django/django.git

ただし、プライベートリポジトリでこれを試すと:

pip install git+git://github.com/echweb/echweb-utils.git

次の出力が得られます。

Downloading/unpacking git+git://github.com/echweb/echweb-utils.git
Cloning Git repository git://github.com/echweb/echweb-utils.git to /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build
Complete output from command /usr/local/bin/git clone git://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build:
fatal: The remote end hung up unexpectedly

Cloning into /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build...

----------------------------------------
Command /usr/local/bin/git clone git://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-VRsIoo-build failed with error code 128

これは、認証を提供せずにプライベート リポジトリにアクセスしようとしていることが原因だと思います。したがって、Git + を使用しようとしましたがssh、pip が SSH 公開鍵を使用して認証することを期待しています。

pip install git+ssh://github.com/echweb/echweb-utils.git

これにより、次の出力が得られます。

Downloading/unpacking git+ssh://github.com/echweb/echweb-utils.git
Cloning Git repository ssh://github.com/echweb/echweb-utils.git to /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build
Complete output from command /usr/local/bin/git clone ssh://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build:
Cloning into /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build...

Permission denied (publickey).

fatal: The remote end hung up unexpectedly

----------------------------------------
Command /usr/local/bin/git clone ssh://github.com/echweb/echweb-utils.git /var/folders/cB/cB85g9P7HM4jcPn7nrvWRU+++TI/-Tmp-/pip-DQB8s4-build failed with error code 128

私が達成しようとしていることは可能ですか?もしそうなら、どうすればいいですか?

4

17 に答える 17

502

git+sshURI スキームを使用できますが、ユーザー名を設定する必要があります。git@URIの次の部分に注目してください。

pip install git+ssh://git@github.com/echweb/echweb-utils.git

デプロイ キーについてもお読みください。

PS: 私のインストールでは、「git+ssh」URI スキームは「編集可能な」要件でのみ機能します。

pip install -e URI#egg=EggName

覚えておいてください:コマンドでリモートのアドレスを使用する前に、印刷される文字:を文字に変更してください:git remote -v/pip

$ git remote -v
origin  git@github.com:echweb/echweb-utils.git (fetch)
#                     ^ change this to a '/' character

忘れると、次のエラーが発生します。

ssh: Could not resolve hostname github.com:echweb:
         nodename nor servname provided, or not known
于 2011-01-29T15:08:11.407 に答える
87

As an additional technique, if you have the private repository cloned locally, you can do:

pip install git+file://c:/repo/directory

More modernly, you can just do this (and the -e will mean you don't have to commit changes before they're reflected):

pip install -e C:\repo\directory
于 2013-01-21T02:17:50.887 に答える
53

次のように、HTTPS URL を使用して直接行うことができます。

pip install git+https://github.com/username/repo.git

これは、たとえば、 Djangoプロジェクトの requirements.txt にその行を追加するだけでも機能します。

于 2013-03-24T11:19:28.737 に答える
38

Bitbucketでも動作します:

pip install git+ssh://git@bitbucket.org/username/projectname.git

この場合、PipはSSHキーを使用します。

于 2012-09-21T02:09:58.243 に答える
15

要件ファイルの構文は次のとおりです。

https://pip.pypa.io/en/latest/reference/pip_install.html#requirements-file-format

したがって、たとえば、次を使用します。

-e git+http://github.com/rwillmer/django-behave#egg=django-behave

インストール後にソースを固定したい場合。

あるいは単に

git+http://github.com/rwillmer/django-behave#egg=django-behave

インストールしたいだけなら。

于 2012-09-25T11:20:23.097 に答える
10

次のファイルでcurlのログイン資格情報 (ログインとパスワード、またはデプロイ トークン) を提供することにより、git+https://github.com/... URLを介してプライベート リポジトリの依存関係をインストールすることもできます。.netrc

echo "machine github.com login ei-grad password mypasswordshouldbehere" > ~/.netrc
pip install "git+https://github.com/ei-grad/my_private_repo.git#egg=my_private_repo"
于 2016-09-15T20:09:52.623 に答える
7

GitHub からインストールしていたとき、以下を使用できました。

pip install git+ssh://git@github.com/<username>/<projectname>.git#egg=<eggname>

しかし、 pip as を実行する必要があったためsudo、SSH キーが GitHub で機能しなくなり、「git clone」が「Permission denied (publickey)」で失敗しました。を使用git+httpsすると、コマンドを sudo として実行し、GitHub にユーザー/パスワードを要求することができました。

sudo pip install git+https://github.com/<username>/<projectname>.git#egg=<eggname>
于 2013-12-02T23:25:57.337 に答える
3

GitHub、GitLab などに独自のライブラリ/パッケージがある場合は、v2.0 などのライブラリの具体的なバージョンでコミットするタグを追加する必要があります。その後、パッケージをインストールできます。

pip install git+ssh://link/name/repo.git@v2.0

これは私にとってはうまくいきます。他の解決策はうまくいきませんでした。

于 2018-05-24T09:45:47.693 に答える
0

この回答については、oxyumのソリューションで問題ありません。sudoキーを root 用にも保存する必要があるため (たとえば、 )を使用してインストールする場合は注意が必要です/root/.ssh

次に、入力できます

sudo pip install git+ssh://git@github.com/echweb/echweb-utils.git
于 2015-01-12T11:46:48.733 に答える