pipenv でローカルパッケージが正常にインストールされないときの対処法

Posted on Mar 13, 2021

TL; DR;

  • pip install pipenv==2018.11.26 をすれば直った!!!!!

実行環境

$pipenv --version
pipenv, version 2020.11.15

直面した問題

./app/
├── model
│   └── setup.py
└── serving
    └── Pipfile

のような構成で、modelというローカルパッケージを作成しており、serving 直下のPipfile は、model を読み込んでsetup.py に記述されている依存パッケージもインストールするようにしたい。

serving ディレクトリで、以下のコマンドを入力すればローカルパッケージがpipenv によりインストールされるはずだが

pipenv install --editable ../model

依存関係をすべて記述するはずのPipenv.lock には、modelのパスのみが記述され、ローカルパッケージが要求する依存パッケージが記述されていない。

原因を探してみたところ、

Installing a local package with pipenv install ‘-e .’ doesn’t save dependencies #1024

同じ GitHub issue を発見しダメ元で pipenv を以下のコマンドでダウングレードして見たところ

pip install pipenv==2018.11.26

なんと…. 直った。無事にローカルパッケージの依存パッケージが Pipenv.lock に記述されており、無事にローカルパッケージがserving 直下で動くようになった。

後方互換性が無いとかそんなちゃちな問題ではない気がするのだが、この問題でかなり時間が溶けたので非常に精神的に消耗した。

思えばこういう問題が多くて、普段はpoetry を使っていたのを思い出した。

Ref

See Also