hurutoriya

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

TL; DR;

実行環境

$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

関連しているかもしれない記事

Support

記事をお読みくださりありがとうございます。 このウェブサイトの運営を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、記事の執筆、情報発信のモチベーションに繋がります✨

--

記事を楽しめましたか? RSSで更新情報を配信しているので、お好きなフィードリーダーで購読してみてください。
また、記事へのリアクションやコメントなどを、以下のGitHub を利用したコメントシステムからしていただけると執筆の励みになります。

#python