1. ホーム
  2. python

[解決済み] GitHubのプライベートリポジトリからpipを使ってパッケージをインストールすることは可能ですか?

2022-03-20 17:18:06

質問

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

私が実現しようとしていることは、果たして可能なのでしょうか?もし可能なら、どうすればいいのでしょうか?

どのように解決するのですか?

を使用することができます。 git+ssh URIスキームですが、あなたは 必ず はユーザー名を設定します。また git@ の部分がURIに含まれています。

pip install git+ssh://[email protected]/echweb/echweb-utils.git

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

PS: 私のインストールでは、"git+ssh" URI スキームは "editable" の要件でのみ機能します。

pip install -e URI#egg=EggName

リメンバー : を変更します。 : という文字が git remote -v にプリントします。 / 文字でリモートのアドレスを使用する前に pip コマンドを使用します。

$ git remote -v
origin  [email protected]: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