web-dev-qa-db-ja.com

追加のpythonパッケージインデックスURLをsetup.pyで使用する

追加のpythonパッケージインデックス(ala pip --extra-index-url pypi.example.org mypackage)をsetup.pyで使用して、python setup.py installpypi.example.org

32
Jeremy

あなたがパッケージメンテナーで、パッケージの1つ以上の依存関係をPyPi以外の場所でホストしたい場合は、ディストリビューションのsetup.pyファイルでsetuptoolsの-​​ dependency_links オプションを使用できます。これにより、パッケージを配置できる場所を明示的に指定できます。

例えば:

from setuptools import setup

setup(
    name='somepackage',
    install_requires=[
        'somedep'
    ],
    dependency_links=[
        'https://pypi.example.org/pypi/somedep/'
    ]
    # ...
)

独自のインデックスサーバーをホストする場合は、すべてのパッケージを一覧表示するページではなく、各Eggの実際のダウンロードリンクを含むページへのリンクを提供する必要があります(例:https://pypi.example.org/pypi/somedep/ではなくhttps://pypi.example.org/

32

setuptoolsは、内部でeasy_installを使用します。

setup.cfgまたは〜/ .pydistutils.cfgのいずれかに依存しているドキュメントどおり ここ

packagesへの追加パスは、これらのファイルのいずれかで find_links を使用して定義できます。レジストリURLはindex_urlで上書きできますが、extra-index-url。ドキュメントに触発された以下の例:

[easy_install]
find_links = http://mypackages.example.com/somedir/
             http://turbogears.org/download/
             http://peak.telecommunity.com/dist/
index-url = https://mypi.example.com
10
TomDotTom

Dockerfileを使用するときに見つかった解決策:

RUN cd flask-mongoengine-0.9.5 && \
    /bin/echo -e [easy_install]\\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple >> setup.cfg && \
    python setup.py install

どの/bin/echo -e [easy_install]\\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simpleは出力します:

[easy_install]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
1
NOZUONOHIGH

以下は私のために働きました(インストールではなく開発):

$ python setup.py develop --index-url https://x.com/n/r/pypi-proxy/simple

どこ https://x.com/n/r/pypi-proxy/simpleはローカルのPyPIリポジトリです。

0
miku