パッケージとa
を必要とするパッケージをインストールしたいとします。次に、requiresとrequires が必要です。そのため、との要件を同じパッケージで同時に満たすことはできません。b1
b2
b1
c > 1.0.0
b2
c < 1.0.0
b1
b2
原則・その他のプログラミング言語では問題ありません。の 2 つのバージョンをc
並べてインストールし、b1
が 以外のバージョンを使用していることを確認できますb2
。
ただし、pip が同じパッケージの 2 つのバージョンをインストールできるかどうかはわかりません。私の最初の質問は、1 つのパッケージの 2 つのバージョンを pip でインストールできますか?
私の主な質問は、実際にその問題にどのように対処できるかです。私が今想像できる唯一の方法は
- fork
b1
(またはb2
) と fork で動作する のバージョン、およびPyPI へc
のアップロード、またはb1_forked
c_for_b1_forked
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
ディレクトリは少し混乱します)。
このブログ投稿は、現時点では競合する推移的な依存関係に対する適切な解決策がないことを示唆しています。他のプロジェクト(詩など)はそれを助けますか?