私たちはgithubでpipを使って私たちのプロダクションサーバーにプライベートパッケージをインストールしたいのです。この質問はインストールが成功するためにgithubリポジトリにある必要があるものに関するものです。
次のコマンドラインを想定しています(これは正常に認証され、インストールを試みます)。
pip install git+ssh://[email protected]/BlahCo/search/tree/prod_release_branch/ProductName
ProductNameには何が必要ですか? sdistオプションを指定してsetup.pyを実行した後にtarファイルに通常含まれる内容、それとも実際のtar.gzファイル、またはその他の内容のどちらですか。
私はいくつかのバリエーションを試してみましたが、うまく機能させることができないので、ここで質問しています。任意の助けをいただければ幸いです。
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 で詳細情報
私は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のソースリポジトリと連携させることができます。
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の場所を出力することを可能にします。
他のプロジェクトを複製するのと同じ方法で、ターゲットリポジトリを複製します。
git clone [email protected]:myuser/foo.git
それからそれを開発モードでインストールします。
cd foo
pip install -e .
あなたがしたくないものは何でも変更することができ、foo
パッケージを使用するすべてのコードは修正されたコードを使用します。
このソリューションには2つの利点があります。
.git
dirが含まれているので、通常のGitリポジトリです。あなたはすぐにあなたのフォークにプッシュすることができます。