best practice when installing python packages

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

best practice when installing python packages

Anil F Duggirala
hello,
Im having an issue while installing a piece of software with pip3:
pip3 install --user -r contrib/requirements/requirements-binaries.txt

Command "python setup.py egg_info" failed with error code 1 in
/tmp/pip-install-48wlqr39/PyQt5/

I had previously installed: apt install python3-pyqt5. Now, pyqt5 is
listed in the requirements-binaries.txt list, however, it requires a
newer version than the one installed by apt.

Online I find many people getting a similar error and suggesting using
pip3 upgrade to upgrade the "pip" and the "setuptools" modules. And
this brings me to my question. What happens if I use pip3 to upgrade a
module that was installed via apt?

Now pip3 list is listing both the pip and setuptools modules (which
were installed using apt). It even tells me about a newer version
available (via pip). However pip3 list is not listing the pyqt5 module
as installed, why is it not showing this module, which is installed?
Does this have to do with the fact that my pip or setuptools modules
are outdated? (both have much newer versions available via pip)

please reply to my email, I am not subscribed to this list,
thank you,

Anil

Reply | Threaded
Open this post in threaded view
|

Re: best practice when installing python packages

Scott Kitterman-5
On Saturday, April 25, 2020 1:10:37 PM EDT Anil F Duggirala wrote:

> hello,
> Im having an issue while installing a piece of software with pip3:
> pip3 install --user -r contrib/requirements/requirements-binaries.txt
>
> Command "python setup.py egg_info" failed with error code 1 in
> /tmp/pip-install-48wlqr39/PyQt5/
>
> I had previously installed: apt install python3-pyqt5. Now, pyqt5 is
> listed in the requirements-binaries.txt list, however, it requires a
> newer version than the one installed by apt.
>
> Online I find many people getting a similar error and suggesting using
> pip3 upgrade to upgrade the "pip" and the "setuptools" modules. And
> this brings me to my question. What happens if I use pip3 to upgrade a
> module that was installed via apt?
>
> Now pip3 list is listing both the pip and setuptools modules (which
> were installed using apt). It even tells me about a newer version
> available (via pip). However pip3 list is not listing the pyqt5 module
> as installed, why is it not showing this module, which is installed?
> Does this have to do with the fact that my pip or setuptools modules
> are outdated? (both have much newer versions available via pip)
>
> please reply to my email, I am not subscribed to this list,
> thank you,
On Debian pip/pip3 does a user install by default, so if you do an 'upgrade'
of a system installed module, it should have no system wide effect, only for
the current user.

The Buster (Debian 10) version of PyQt5 does not install the Python packaging
related metadata, so it not being listed by pip3 is not a surprise (for the
next release it is provided).

For cases like this, I think the best practice is to work inside a virtualenv
where you can upgrade pip and install whatever you need via pip with no impact
on either your user or system python.

Scott K

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: best practice when installing python packages

Anil F Duggirala
On Sat, 2020-04-25 at 13:55 -0400, Scott Kitterman wrote:
> On Debian pip/pip3 does a user install by default, so if you do an
> 'upgrade'
> of a system installed module, it should have no system wide effect,
> only for
> the current user.

Thank you for that piece of info. I was really wondering why all pip
installed packages were --user installed. But does this also apply to
upgrading pip itself? So if I upgrade pip I would necessarily end up
with two different versions of pip? In that case what determines which
will be the "default" pip? And will this possibly create issues? Sorry,
I am a newbie.

>
> The Buster (Debian 10) version of PyQt5 does not install the Python
> packaging
> related metadata, so it not being listed by pip3 is not a surprise
> (for the
> next release it is provided).

Well. Basically my problem is that, with the pip3 version supplied by
Debian, it is not possible to install pyqt5 without an error. One
apparently needs to upgrade pip (however, this appears to be a bug in
the pyqt5 package).

> For cases like this, I think the best practice is to work inside a
> virtualenv
> where you can upgrade pip and install whatever you need via pip with
> no impact
> on either your user or system python.

I will do this then.

Thank you very much Scott.


Reply | Threaded
Open this post in threaded view
|

Re: best practice when installing python packages

Anil F Duggirala
> > For cases like this, I think the best practice is to work inside a
> > virtualenv
> > where you can upgrade pip and install whatever you need via pip
> > with
> > no impact
> > on either your user or system python.
>
> I will do this then.
>

Actually this is exactly what is recommended here:
https://stackoverflow.com/questions/59558343/cant-install-pyqt5-on-raspberry-pi


However a different post suggests there is a bug in the pyqt5
pyproject.toml.
https://stackoverflow.com/questions/59462014/cant-install-pyqt5-using-pip-on-raspberry-pi

I just wonder why upgrading pip "fixes" this bug.

thanks again,