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