2017-11-20 3 views
0

mainという大きなプロジェクトのライブラリを作成しています。必要なバージョンの依存関係を持つPython/pipの動作の理解

  • mainlib1に依存し、lib2==1.0.0に依存します。私は悩み、以下の依存構造が存在する場合にはPython /ピップの動作を理解することです。
  • mainは、lib2==2.0.0に依存します。これは私のメインプロジェクトとして混乱状態のビットを作成

    main 
    - lib2==2.0.0 
    - lib1==x.x.x 
        - lib2==1.0.0 
    

    ツリーとして表示

は、まだメインプロジェクトの依存関係の別の1が先に依存lib2のV2が提供するAPIに依存しますバージョンlib2です。

この場合、Python/pipの動作は何ですか?両方のライブラリがインストールされ、保持されますか?このバージョンの競合を正常に解決する方法はありますか?

npmでは、例えば、ライブラリーの両方のバージョンがインストールされ、正しいバージョンが適切な依存ライブラリによって必要とされる。)

+0

[複数のバージョンのパッケージをpipでインストールする](https://stackoverflow.com/questions/6570635/installing-multiple-versions-ofa-a-package-with-pip)の可能な複製 – scharette

答えて

0

時間のほとんどは、特定のモジュールの依存ライブラリはに基づいて変化しますそれらを構築する際に使用されるモジュールのバージョン。

たとえば、私はSpacyをインストールした場所からずっと前にこの問題に遭遇しました。私のプロジェクトでは、Numpy --version 1.0(例として)を使用していました。しかしSpacyはNumpy --version 2.0を使用しました。

私は別の環境を使ってプロジェクト全体を実行しました。その環境内のすべてのモジュールをインストールし、NumpyがSpacyの前にインストールされ、そのバージョンが使用されているNumpyバージョンSpacyによってnumpyバージョンを上書きして、バージョン日付を最新バージョンを使用するモジュールに更新します(または少なくとも試みます)。

私はあなたに明確な答えを与えていないかもしれませんが、私が見たものからいくつかの洞察を共有しているだけかもしれません。

関連する問題