web-dev-qa-db-ja.com

pip installが依存リンクを無視しているようです

Pythonアプリケーションがいくつかのパッケージに依存しています。残念ながら、それらのパッケージの1つはPyPiに含まれていないため、gitリポジトリから直接インストールする必要があります。

私はそれを私のように私のsetup.pyに追加しようとしています:

setup(
..,
..,
dependency_links = [
                 'https://github.com/marcuz/libpynexmo.git#Egg=nexmomessage'
    ],
install_requires=[
    ..,
    'nexmomessage'
],
packages=['localpackage']

ただし、失敗:nexmomessageのディストリビューションはまったく見つかりません

依存関係リンクリストを作成する場所を確認します。common.Egg-info/ dependency_links.txtにdependency_linksを書き込んでいます。そのファイルを見ると、URLは正しいです。

コマンドラインで実行した場合:pip install -e git + https://github.com/marcuz/libpynexmo.git#Egg=nexmomessage

問題なくインストールされます。

考え?

7
Dave Holland

Pip 1.5以降、 依存リンクは非推奨 です。現在、pipは--process-dependency-linksフラグで強制的に使用することができます。 --allow-external packagenameまたは--allow-unverified packagenameを使用する必要がある場合もあります。ここで、packagenameは、公式リポジトリにない、インストールする依存関係を実際に指定します

廃止予定の機能であるため、--process-dependency-linksフラグは間もなく完全に削除されます。 requirements.txtファイルを提供することをお勧めします。

6
detly

そして、pip 7以降、それらは再び有効になります。これは、dependency_linksピップを使用:

pip install -e /path/to/python/module --process-dependency-links --allow-all-external

ディストリビューションシステムのpipを使用している場合は、pipをアップグレードする必要があります。

pip install pip --upgrade

プルリクエストで発生したようです #1519

2
Niklas B