5

パッケージとaを必要とするパッケージをインストールしたいとします。次に、requiresとrequires が必要です。そのため、との要件を同じパッケージで同時に満たすことはできません。b1b2b1c > 1.0.0b2c < 1.0.0b1b2

原則・その他のプログラミング言語では問題ありません。の 2 つのバージョンをc並べてインストールし、b1が 以外のバージョンを使用していることを確認できますb2

ただし、pip が同じパッケージの 2 つのバージョンをインストールできるかどうかはわかりません。私の最初の質問は、1 つのパッケージの 2 つのバージョンを pip でインストールできますか?

私の主な質問は、実際にその問題にどのように対処できるかです。私が今想像できる唯一の方法は

  1. fork b1(またはb2) と fork で動作する のバージョン、およびPyPI へcのアップロード、またはb1_forkedc_for_b1_forked
  2. b1(またはb2) のコードをプロジェクトに直接含める

どちらも必要以上に問題があるようです。

私が試したこと

>>> import natsort; print(natsort.__file___)
'/home/moose/.local/lib/python3.6/site-packages/natsort/__init__.py'

$ cd /home/moose/.local/lib/python3.6/site-packages
$ ls
[... a lot of *.dist-info directories, some .py files, some .so files, ]
[... some directories called like the packages I've installed]

したがって、これは Python がインストールされたパッケージを探す場所であり、インストールされるバージョンは 1 つだけであると確信しています (ただし、*-dist-infoディレクトリは少し混乱します)。

このブログ投稿は、現時点では競合する推移的な依存関係に対する適切な解決策がないことを示唆しています。他のプロジェクト(詩など)はそれを助けますか?

4

1 に答える 1