why I dropped pipenv in favor of homemade bash script?
Posted on sob 18 maja 2019 in misc
Long time ago ...
... i suffered from fact, that I'm not able to track my pip dependencies. pip
freeze
was not solution, because it attached lot of dependencies, which was
broken in few months.
I dreamed about software, which will track my pip install
commands, and will
store key dependencies in .txt files, which are ready to use requrements when eg. I
want to install something to production.
Pipenv.
Then I found Pipenv, and I was happy as a kid. It was what I wanted.
Few weeks later, I realized that it's not exactly what I want. It is error prone, narcistic and slow.
why narcistic?
Pipenv ought to be interface to pip
. Pip is in the background, but it's quite hidden.
In fact you have no idea what's happening when it tries to install. When failed - then you usually can't see pip output.
I thought that if I give --verbose
option, then I will
see what pip install
said. I was wrong. I saw mainly lot of debug things of
pipenv, and pip
output hidden beneath them.
Long story short - if pip install
fail because:
- there is no
.h
file in system, - or wrong download path,
- or internet is broken,
- your transparent proxy gives you wrong file
, then you can't see it without effort.
why slow?
Because want's too much. Too much for me. Looks like it tries to determine
optimal combination of libraries, and when I tried to install few libraries by
pipenv
: kivy,
cymunk,
kivent, then calculating dependencies tooks
so long that I wrote simple replacement script in this time.
what instead of pipenv?
- as wrote above, I wrote simple script. It's, clumsy but working. I called it Yapm.
- pipm - looks nice but doesn't handle git+https:// packages
- pipdeptree - also can be useful, but it's not exactly workflow I like.