[3.0.2.8] Installing Python packages via pip fails
First thing: Thank you very much for updating Python from 3.4 to 3.7, this is huge!
There is a small issue with pip
however. If you attempt to install anything via pip
, the following happens:
> /usr/bin/pip3 install --user -U pip
... a lot of Traceback ...
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 3.
Indeed, running lsb_release -a
fails with error code 3:
> lsb_release -a
LSB Version: :core-3.1-arm:core-3.1-noarch:core-3.2-arm:core-3.2-noarch:core-4.0-arm:core-4.0-noarch:desktop-3.1-arm:desktop-3.1-noarch:desktop-3.2-arm:desktop-3.2-noarch:desktop-4.0-arm:desktop-4.0-noarch
Distributor ID: n/a
Description: (none)
Release: n/a
Codename: n/a
> echo $?
3
However, pip
can be set up to not use lsb_release
to detect the linux distribution. As a quick fix, line 573 in file /usr/lib/python3.7/site-packages/pip/_vendor/distro.py
can be changed to
...
include_lsb=False,
...
for obvious reasons. Now, pip
works agains as expected.
If you get annoyed by the ”pip is outdated” warning and decide to update it via
python3 -m pip install --user -U pip
, keep in mind that this installs a new copy ofpip
under~/.local/lib/python3.7
and you will have to apply the above fix there as well.
Maybe it's possible to change this line permanently in the python3-base
package? Fixing lsb_release
itself seems to be a problem as explained in this answer.
Cheers,
Yann
Is pip now included by default? Just checked and the manually installed one in python3.4 dir is 19.0.3, it does have include_lsb=True, and it didn't seem to throw any errors
szopin ( 2019-03-26 12:39:40 +0200 )editYes,
NobodyInPerson ( 2019-03-26 13:40:33 +0200 )editpip
is included by default (see output ofrpm -ql python3-base | grep pip
). I don't have a SailfishOS device with 3.0.1 Sipoonkorpi at hand, but my guess is that for some reason,lsb_release
behaves differently there so thatpip
doesn't fail.I still have leftover python3.4 directory with the manually installed pip (pretty sure it wasn't installed by default then as had to look for it), was just wondering if pip got included by the system update somehow and downgraded in the process, as used to work fine. Worst part is not sure how to uninstall old packages I installed using it as now both pip and pip3 only find 2, I guess will just manually delete the 3.4 dir, but will most likely have some leftovers eating into the limited sys partition. At least we got pip now officially yay!
szopin ( 2019-03-26 13:50:51 +0200 )editAs a tip for problems with the
NobodyInPerson ( 2019-03-26 13:53:40 +0200 )editpip
andpip3
executable scripts: Don't use them. Usepython3 -m pip
instead. It's far more robust.I only used it to install streamlinks as it seems the only way to watch streams on sailfish, so can hopefully track down all the components it installed, but had no problems with using just pip, but thanks for the tip (btw the parameters you listed '--user -U pip' will make it install in local dirs instead of global right? if all libs/executables end up in same sub dirs this will help me track all the mess)
szopin ( 2019-03-26 13:56:58 +0200 )edit