web-dev-qa-db-ja.com

pip installがgithubから機能するように設定する

私たちはgithubでpipを使って私たちのプロダクションサーバーにプライベートパッケージをインストールしたいのです。この質問はインストールが成功するためにgithubリポジトリにある必要があるものに関するものです。

次のコマンドラインを想定しています(これは正常に認証され、インストールを試みます)。

pip install git+ssh://[email protected]/BlahCo/search/tree/prod_release_branch/ProductName

ProductNameには何が必要ですか? sdistオプションを指定してsetup.pyを実行した後にtarファイルに通常含まれる内容、それとも実際のtar.gzファイル、またはその他の内容のどちらですか。

私はいくつかのバリエーションを試してみましたが、うまく機能させることができないので、ここで質問しています。任意の助けをいただければ幸いです。

200
ccgillett

setup.pyファイルが入ったpythonパッケージ全体が必要です。

fooという名前のパッケージは次のようになります。

foo # the installable package
├── foo
│   ├── __init__.py
│   └── bar.py
└── setup.py

そしてgithubから次のようにインストールします。

$ pip install git+https://github.com/myuser/foo.git@v123
or
$ pip install git+https://github.com/myuser/foo.git@newbranch

https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support で詳細情報

265
Hugo Tavares

私はgithubレポジトリからインストールしなければならなかったときに私は同様の問題を抱えていましたが、gitなどをインストールしたくありませんでした。

それをする簡単な方法はパッケージのZipアーカイブを使うことです。リポジトリURLに/zipball/masterを追加します。

    $ pip install https://github.com/hmarr/Django-debug-toolbar-mongo/zipball/master
Downloading/unpacking https://github.com/hmarr/Django-debug-toolbar-mongo/zipball/master
  Downloading master
  Running setup.py Egg_info for package from https://github.com/hmarr/Django-debug-toolbar-mongo/zipball/master
Installing collected packages: Django-debug-toolbar-mongo
  Running setup.py install for Django-debug-toolbar-mongo
Successfully installed Django-debug-toolbar-mongo
Cleaning up...

このようにして、pithをgithubのソースリポジトリと連携させることができます。

103
Dmitry

requirements.txtファイルを使用したい場合は、requirements.txt内のマスターブランチを匿名で取得するためにはgitと以下のエントリのようなものが必要になります。

通常のインストールの場合

git+git://github.com/celery/Django-celery.git

" 編集可能 "の場合:

-e git://github.com/celery/Django-celery.git#Egg=Django-celery

編集可能モードでは、プロジェクトのソースコードを現在のディレクトリの./srcにダウンロードします。 pip freezeがパッケージの正しいgithubの場所を出力することを可能にします。

24
wieczorek1990

他のプロジェクトを複製するのと同じ方法で、ターゲットリポジトリを複製します。

git clone [email protected]:myuser/foo.git

それからそれを開発モードでインストールします。

cd foo
pip install -e .

あなたがしたくないものは何でも変更することができ、fooパッケージを使用するすべてのコードは修正されたコードを使用します。

このソリューションには2つの利点があります。

  1. あなたはあなたのホームプロジェクトディレクトリにパッケージをインストールすることができます。
  2. パッケージには.git dirが含まれているので、通常のGitリポジトリです。あなたはすぐにあなたのフォークにプッシュすることができます。
11
avalanchy