[libvirt] libvirt-python RPM installation not recognized by pip

Hello, When using the standard "requirements.txt" files for installation package dependencies, I noticed that "libvirt-python" would attempt to be installed by "pip" even when the equivalent RPM package is already installed. For instance, on a Fedora 25 system: $ rpm -q libvirt-python libvirt-python-2.2.0-1.fc25.x86_64 $ python -e 'import pkg_resources; pkg_resources.get_distribution("libvirt-python")' ... pkg_resources.DistributionNotFound: The 'libvirt-python' distribution was not found and is required by the application The provider (the actual module) is actually present, but (rightfully so) under the name "libvirt": $ python -c 'import pkg_resources; print pkg_resources.get_provider("libvirt")' <pkg_resources.DefaultProvider instance at 0x7fdfbc67a488> At first sight, this seems to be caused by the lack of an "egg-info" file, such as: $PYTHON_SITE_PACKAGES/libvirt_python-2.2.0-py2.7.egg-info I'm reporting a supposedly packaging issue here since the libvirt-python setup.py file itself includes support for a custom rpm command. Please advise if any of this is intentional, and/or whether this should indeed be reported here or on downstream only. Regards, -- Cleber Rosa [ Sr Software Engineer - Virtualization Team - Red Hat ] [ Avocado Test Framework - avocado-framework.github.io ] [ 7ABB 96EB 8B46 B94D 5E0F E9BB 657E 8D33 A5F2 09F3 ]

On Mon, May 15, 2017 at 07:35:30AM -0400, Cleber Rosa wrote:
Hello,
When using the standard "requirements.txt" files for installation package dependencies, I noticed that "libvirt-python" would attempt to be installed by "pip" even when the equivalent RPM package is already installed.
For instance, on a Fedora 25 system:
$ rpm -q libvirt-python libvirt-python-2.2.0-1.fc25.x86_64 $ python -e 'import pkg_resources; pkg_resources.get_distribution("libvirt-python")' ... pkg_resources.DistributionNotFound: The 'libvirt-python' distribution was not found and is required by the application
The provider (the actual module) is actually present, but (rightfully so) under the name "libvirt":
$ python -c 'import pkg_resources; print pkg_resources.get_provider("libvirt")' <pkg_resources.DefaultProvider instance at 0x7fdfbc67a488>
At first sight, this seems to be caused by the lack of an "egg-info" file, such as:
$PYTHON_SITE_PACKAGES/libvirt_python-2.2.0-py2.7.egg-info
I'm reporting a supposedly packaging issue here since the libvirt-python setup.py file itself includes support for a custom rpm command.
Please advise if any of this is intentional, and/or whether this should indeed be reported here or on downstream only.
On non-rpm system, I have that file and it works properly: $ ls /usr/lib64/python*/site-packages/libvirt_python-3.2.0-py*.egg-info /usr/lib64/python2.7/site-packages/libvirt_python-3.2.0-py2.7.egg-info /usr/lib64/python3.4/site-packages/libvirt_python-3.2.0-py3.4.egg-info $ pip install --user libvirt-python Requirement already satisfied: libvirt-python in /usr/lib64/python3.4/site-packages Looks like this _might_ be related to the %install script in libvirt-python.spec.in: rm -f %{buildroot}%{_libdir}/python*/site-packages/*egg-info So it should be included instead, I guess. Cc'ing the original author for confirmation that it was not intentional. Thanks for reporting that.
Regards,
-- Cleber Rosa [ Sr Software Engineer - Virtualization Team - Red Hat ] [ Avocado Test Framework - avocado-framework.github.io ] [ 7ABB 96EB 8B46 B94D 5E0F E9BB 657E 8D33 A5F2 09F3 ]
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

On Mon, May 15, 2017 at 02:52:07PM +0200, Martin Kletzander wrote:
On Mon, May 15, 2017 at 07:35:30AM -0400, Cleber Rosa wrote:
Hello,
When using the standard "requirements.txt" files for installation package dependencies, I noticed that "libvirt-python" would attempt to be installed by "pip" even when the equivalent RPM package is already installed.
For instance, on a Fedora 25 system:
$ rpm -q libvirt-python libvirt-python-2.2.0-1.fc25.x86_64 $ python -e 'import pkg_resources; pkg_resources.get_distribution("libvirt-python")' ... pkg_resources.DistributionNotFound: The 'libvirt-python' distribution was not found and is required by the application
The provider (the actual module) is actually present, but (rightfully so) under the name "libvirt":
$ python -c 'import pkg_resources; print pkg_resources.get_provider("libvirt")' <pkg_resources.DefaultProvider instance at 0x7fdfbc67a488>
At first sight, this seems to be caused by the lack of an "egg-info" file, such as:
$PYTHON_SITE_PACKAGES/libvirt_python-2.2.0-py2.7.egg-info
I'm reporting a supposedly packaging issue here since the libvirt-python setup.py file itself includes support for a custom rpm command.
Please advise if any of this is intentional, and/or whether this should indeed be reported here or on downstream only.
On non-rpm system, I have that file and it works properly:
$ ls /usr/lib64/python*/site-packages/libvirt_python-3.2.0-py*.egg-info /usr/lib64/python2.7/site-packages/libvirt_python-3.2.0-py2.7.egg-info /usr/lib64/python3.4/site-packages/libvirt_python-3.2.0-py3.4.egg-info
$ pip install --user libvirt-python Requirement already satisfied: libvirt-python in /usr/lib64/python3.4/site-packages
Looks like this _might_ be related to the %install script in libvirt-python.spec.in:
rm -f %{buildroot}%{_libdir}/python*/site-packages/*egg-info
So it should be included instead, I guess. Cc'ing the original author for confirmation that it was not intentional.
Fedora policy for a long time was that python packages *should* delete the *egg-info metadata files, but this has apparently changed so that it should be kept installed. https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/... Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (3)
-
Cleber Rosa
-
Daniel P. Berrange
-
Martin Kletzander