154

setuptools と virtualenv を使い始めたところです。私のパッケージには、GitHub からのみ入手できる最新の python-gearman が必要です。PyPI にある python-gearman のバージョンは古いものです。Github ソースは setuptools と互換性があります。つまり、setup.py などがあります。PyPI で探して古いバージョンをインストールする代わりに、setuptools をダウンロードして新しいバージョンをインストールする方法はありますか?

参考までに、新しい python-gearman はhttp://github.com/mtai/python-gearmanです。

4

4 に答える 4

163

重要なのは、パッケージをダウンロードできる場所を easy_install に伝えることです。この特定のケースでは、URL http://github.com/mtai/python-gearman/tarball/masterで見つけることができます。ただし、このリンク自体は機能しません。なぜなら、easy_install は、URL を見るだけでは何を取得するのかを判断できないからです。

代わりにhttp://github.com/mtai/python-gearman/tarball/master#egg=gearman-2.0.0betaに変更することで、easy_install はパッケージ名とそのバージョンを識別できるようになります。

最後のステップは、URL をパッケージの dependency_links に追加することです。例:

setup(
   ...
   dependency_links = ['http://github.com/mtai/python-gearman/tarball/master#egg=gearman-2.0.0beta']
)

ここで、あなたのパッケージがインストールされると、easy_install はその URL からダウンロード可能な「gearman 2.0.0beta」があることを発見し、「gearman>=2.0.0beta」と指定すると、PyPI のものより喜んでそれを選択します。あなたの依存関係で..

(通常、この種のことを行う方法は、PyPI ページにダウンロード可能なソースへのリンクを含めることです。この場合、gearman パッケージの作成者が上記のようなリンクを含めていれば、既に設定されています。 . 通常、人々は開発バージョンを 'myproject-dev' でマークしてから、'myproject>=somever,==dev' の要件を使用します。リリースをチェックアウトまたはダウンロードしてください。)

--process-dependency-linksを使用する際に指定する必要がありますpip。依存関係リンクの処理は廃止され、将来のリリースで削除されることに注意してください。

于 2010-08-14T00:03:48.500 に答える
70

このpip install protocol+location[@tag][#egg=Dependency]形式を使用して、pip を使用してソースから直接インストールできます。

ギット

pip install git+https://github.com/username/repo.git
pip install git+https://github.com/username/repo.git@MyTag
pip install git+https://github.com/username/repo.git@MyTag#egg=ProjectName

マーキュリアル

pip install hg+https://hg.myproject.org/MyProject/

SVN

pip install svn+svn://svn.myproject.org/svn/MyProject

Bzr

pip install bzr+http://bzr.myproject.org/MyProject/trunk

次のプロトコルがサポートされています。[+git, +svn, +hg, +bzr]

バージョン

@tagチェックアウトする特定のバージョン/タグを指定できます。

#egg=name他のプロジェクトの依存関係としてプロジェクトを指定できます。

順序は常に である必要があります@tag#egg=name

プライベート リポジトリ

ssh://プロトコルを SSH に変更し ( )、適切なユーザーを追加する( )ことにより、プライベート リポジトリからインストールすることもできますgit@

git+ssh://git@github.com/username/my_private_repo

ユーザー名/パスワードを使用して、プライベート リポジトリからインストールすることもできます。

git+https://<username>:<password>@github.com/<user>/<repo>.git

Github は、循環可能な個人用 OAuth トークンを作成する機能を提供します

git+https://<oauth token>:x-oauth-basic@github.com/<user>/<repo>.git

要件.txt

requirements.txtプロジェクトの依存関係を指定するために使用されます。

要件.txt

package1
package2==1.0.2
package3>=0.0.4
git+https://github.com/username/repo.git

これらはパッケージで自動的にインストールされないため、コマンドでインストールする必要がありますpip -r requirements.txt

要件ファイルを含める

要件ファイルには、他の要件ファイルを含めることができます。

要件-docs.txt

sphinx
-r requirements-dev.txt

要件-dev.txt

some-dev-tool
-r requirements.txt

要件.txt

package1
package2==1.0.2
package3>=0.0.4
git+https://github.com/username/repo.git

setup.py

要件ファイルはsetup.py、次のコマンドで指定された依存関係をインストールできます。

-e .

setup.py上記と同じ構文を使用してリポジトリからインストールすることもできますが、この回答dependency_linksに記載されている値を使用します。

参考文献:

https://pip.pypa.io/en/latest/user_guide.html#installing-packages https://pip.pypa.io/en/latest/reference/pip_install.html

于 2014-05-26T08:06:26.517 に答える
6

Vanillasetuptoolsは git リポジトリからの直接のダウンロードをサポートしていませんが、そのページから次のような [ソースのダウンロード] リンクのいずれかを使用できます。

easy_install http://github.com/mtai/python-gearman/tarball/master
于 2010-08-12T22:23:11.960 に答える