Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #15208

[long] entry points and package which doesn not provide egg info or dist-info

Path csiph.com!fu-berlin.de!bofh.it!news.nic.it!robomod
From PICCA Frederic-Emmanuel <frederic-emmanuel.picca@synchrotron-soleil.fr>
Newsgroups linux.debian.maint.python
Subject [long] entry points and package which doesn not provide egg info or dist-info
Date Wed, 20 Sep 2023 11:50:02 +0200
Message-ID <Hg20i-af6n-7@gated-at.bofh.it> (permalink)
X-Original-To debian-python <debian-python@lists.debian.org>
X-Mailbox-Line From debian-python-request@lists.debian.org Wed Sep 20 09:48:13 2023
Old-Return-Path <frederic-emmanuel.picca@synchrotron-soleil.fr>
X-Amavis-Spam-Status No, score=-2.178 tagged_above=-10000 required=5.3 tests=[BAYES_00=-2, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FVGT_m_MULTI_ODD=0.02, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001] autolearn=no autolearn_force=no
X-Policyd-Weight using cached result; rate: -5.5
X-Greylist delayed 565 seconds by postgrey-1.36 at bendel; Wed, 20 Sep 2023 09:30:44 UTC
Dkim-Filter OpenDKIM Filter v2.10.3 zmtaout03.partage.renater.fr C9BC940AD5
MIME-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding quoted-printable
X-Mailer Zimbra 8.8.15_GA_4372 (ZimbraWebClient - FF117 (Linux)/8.8.15_GA_4372)
Thread-Index qveegm0nlfuImXoNQ0TgepEVxxy3+Q==
Thread-Topic entry points and package which doesn not provide egg info or dist-info
X-Virus-Status Clean
X-Renater-Ptge-Spamstate clean
X-Renater-Ptge-Spamscore -100
X-Renater-Ptge-Spamcause gggruggvucftvghtrhhoucdtuddrgedviedrudekfedgtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecutffgpfetvffgtfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevkffugggtgffothesthhqtgdtredtjeenucfhrhhomheprffkveevtecuhfhrvgguvghrihgtqdfgmhhmrghnuhgvlhcuoehfrhgvuggvrhhitgdqvghmmhgrnhhuvghlrdhpihgttggrsehshihntghhrhhothhrohhnqdhsohhlvghilhdrfhhrqeenucggtffrrghtthgvrhhnpeekfeegteetkeelgfethfeiffefgfetjeetjedutedthfeggfekueduleejgeelueenucffohhmrghinhepuggvsghirghnrdhorhhgnecukfhppedutddrvdehgedrvdegtddrudegheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpedutddrvdehgedrvdegtddrudeghedphhgvlhhopeiishhtohhrvgdqsgefqddtuddvrdhprghrthgrghgvrdhrvghnrghtvghrrdhfrhdpmhgrihhlfhhrohhmpefrkfevveetucfhrhgvuggvrhhitgdqgfhmmhgrnhhuvghluceofhhrvgguvghrihgtqdgvmhhmrghnuhgvlhdrphhitggtrgesshihnhgthhhrohhtrhhonhdqshholhgvihhlrdhfrheqpdhnsggprhgtphhtthhopedvpdhrtghpthhtohepuggvsghirghnqdhphihthhhonheslhhishhtshdruggvsghirghnrdhorhhgpdhr tghpthhtohepfhgrrhhhihgvsehshihntghhrhhothhrohhnqdhsohhlvghilhdrfhhr
X-Mailing-List <debian-python@lists.debian.org> archive/latest/21140
List-ID <debian-python.lists.debian.org>
List-URL <https://lists.debian.org/debian-python/>
List-Archive https://lists.debian.org/msgid-search/766977618.5060751.1695199086429.JavaMail.zimbra@synchrotron-soleil.fr
Approved robomod@news.nic.it
Lines 247
Organization linux.* mail to news gateway
Sender robomod@news.nic.it
X-Original-Cc Emmanuel FARHI <farhie@synchrotron-soleil.fr>
X-Original-Date Wed, 20 Sep 2023 10:38:06 +0200 (CEST)
X-Original-Message-ID <766977618.5060751.1695199086429.JavaMail.zimbra@synchrotron-soleil.fr>
Xref csiph.com linux.debian.maint.python:15208

Show key headers only | View raw


Hello,

I am the maintainer of silx

I have this problem with the gui application

$ silx view
Traceback (most recent call last):
  File "/usr/bin/silx", line 33, in <module>
    sys.exit(load_entry_point('silx==1.1.2', 'console_scripts', 'silx')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/silx/__main__.py", line 67, in main
    status = launcher.execute(sys.argv)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/silx/utils/launcher.py", line 294, in execute
    return command.execute(command_argv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/silx/utils/launcher.py", line 128, in execute
    status = func(argv)
             ^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/silx/app/view/main.py", line 214, in main
    mainQt(options)
  File "/usr/lib/python3/dist-packages/silx/app/view/main.py", line 156, in mainQt
    import silx.gui.utils.matplotlib  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/silx/gui/utils/matplotlib.py", line 39, in <module>
    from pkg_resources import parse_version
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3328, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3303, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3341, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 631, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 969, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 871, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'h5py' distribution was not found and is required by 'hdf5plugin silx'

So the entry point do not find the h5py package even if python3-h5py is installed via python3-h5py-serial

I reported the issue to the h5py  maintainer via this bug report.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051781

This package is a bit special since it provide a serial implementation python3-h5py-serial and an MPI one via the 
python3-h5py-mpi. both packages are co-installable.

In each of these packages there is an 

/usr/lib/python3/dist-packages/h5py._debian_h5py_serial-3.7.0.dist-info/METADATA
/usr/lib/python3/dist-packages/h5py._debian_h5py_serial-3.7.0.dist-info/RECORD
/usr/lib/python3/dist-packages/h5py._debian_h5py_serial-3.7.0.dist-info/WHEEL
/usr/lib/python3/dist-packages/h5py._debian_h5py_serial-3.7.0.dist-info/top_level.txt

and

/usr/lib/python3/dist-packages/h5py._debian_h5py_mpi-3.7.0.dist-info/METADATA
/usr/lib/python3/dist-packages/h5py._debian_h5py_mpi-3.7.0.dist-info/RECORD
/usr/lib/python3/dist-packages/h5py._debian_h5py_mpi-3.7.0.dist-info/WHEEL
/usr/lib/python3/dist-packages/h5py._debian_h5py_mpi-3.7.0.dist-info/top_level.txt

On Debian the two versions are named h5py._debian_h5py_serial and h5py._debian_h5py_mpi

This organisation is specific to Debian since upstream provide only one version of the h5py package.
On Debian we are able to co-install and MPI and a serial version of this library linked 
to the serial or mpi version of the hdf5 library.

the differences are 

$ diff /usr/lib/python3/dist-packages/h5py._debian_h5py_serial-3.7.0.dist-info/METADATA /usr/lib/python3/dist-packages/h5py._debian_h5py_mpi-3.7.0.dist-info/METADATA 
2c2
< Name: h5py.-debian-h5py-serial
---
> Name: h5py.-debian-h5py-mpi
30a31
> Requires-Dist: mpi4py (>=3.0.2)

so the name and a dependecy to the mpi4py package.

for the RECORD part the installed files are  located in two different directory, so they are totally different.

top_level.txt  WHEEL are identical

There is a generic python3-h5py which is used in the B-D of packages depending on h5py.
It is almost empty but depends on one of the two implementations.

$ dpkg -L python3-h5py
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/python3-h5py
/usr/share/doc/python3-h5py/README.Debian
/usr/share/doc/python3-h5py/README.rst
/usr/share/doc/python3-h5py/changelog.Debian.gz
/usr/share/doc/python3-h5py/copyright

$ apt show python3-h5py
Package: python3-h5py
Version: 3.7.0-8
Priority: optional
Section: python
Source: h5py
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Installed-Size: 22,5 kB
Depends: python3-h5py-serial | python3-h5py-mpi

This package does not provide a dist-info named h5py. So all entry points which depends on h5py will failed (like silx)
bookworm is affected by this issue. Nevertheless I do not know how many packages have this issue, the rdepends on python3-h5py is  like this

  Dépend: dioptas
  Dépend: invesalius
  Dépend: mcaller
  Dépend: ont-fast5-api
  Dépend: pbhoney
  Dépend: poretools
  Dépend: pycoqc
  Dépend: pyfr
  Dépend: python3-anndata (>= 3)
  Dépend: python3-astrodendro (>= 0.2.0)
  Dépend: python3-bayespy
  Dépend: python3-binoculars
  Dépend: python3-biom-format
  Dépend: python3-bioxtasraw
  Dépend: python3-bmtk
  Dépend: python3-cooler (>= 2.5)
  Dépend: python3-dipy
  Dépend: python3-fabio
  Dépend: python3-genx
  Dépend: python3-glue (>= 2.10)
  Dépend: python3-guidata (>= 3.0)
  Dépend: python3-h5netcdf
  Dépend: python3-hdf5plugin
  Dépend: python3-hdf5storage
  Dépend: python3-hdf-compass
  Dépend: python3-hdmf (>= 2.10)
  Dépend: python3-hdmf (<< 4)
  Dépend: python3-hickle (>= 2.10.0)
  Dépend: python3-hydroffice.bag
  Dépend: python3-hyperspy (>= 2.3)
  Dépend: python3-keras
  Dépend: python3-keras-applications
  Dépend: python3-loompy
  Dépend: python3-mintpy
  Dépend: python3-mofapy
  Dépend: python3-nabu (>= 3.0)
  Dépend: python3-openems
  Dépend: python3-pyfai
  Dépend: python3-pygac
  Dépend: python3-pyhst2-cuda
  Dépend: python3-pymca5
  Dépend: python3-pynwb (>= 2.9~)
  Dépend: python3-pyspectral
  Dépend: python3-sardana
  Dépend: python3-sasdata
  Dépend: python3-sasview
  Dépend: python3-silx
  Dépend: python3-skbio (>= 3.6.0)
  Dépend: python3-taurus
  Dépend: python3-tomoscan (>= 3.0)
  Dépend: python3-unifrac (>= 3.3.0)
  Dépend: python3-xraylarch (>= 3.2)
  Dépend: python3-xrayutilities
  Dépend: python3-yt
  Dépend: q2-feature-table
  Dépend: q2-quality-control
  Dépend: q2-types
  Dépend: siconos-mechanics-tools (>= 2.8.0-1)
  Dépend: tombo
  Est en conflit avec: python3-h5py-serial (<< 2.10.0-3~)
python3-h5py
  Recommande: pan-data-reduction-frameworks
  Recommande: pizzly
  Recommande: pysph-viewer
  Recommande: python3-bcbio
  Recommande: python3-geotiepoints
  Recommande: python3-meshio
  Recommande: python3-pbcore
  Recommande: python3-satpy
Reverse Depends:
  Suggère: python3-astropy
  Suggère: python3-dask
  Suggère: python3-h5py-mpi
  Suggère: python3-h5py-serial
  Suggère: python3-klepto
  Suggère: python3-veusz
  Suggère: python3-vigra
  Suggère: python3-zarr
  Suggère: science-nanoscale-physics-dev

- The dependencies are expected to be h5py in all upstream projects. So my question is how do we provide this egg info , should we use alternative in order to create the dist-info depending on the packages installed. Is alternative the right tool for this use case ?

- Is it possible or a desirable expectation from dh_python to failed if there is entry point expecting no available dist of egg info ? This way we will not provide non working packages.

- or a lintian check would be more appropriate for this purpose ?

- how do we fix bookworm ?

thanks for your time

Frederic

Back to linux.debian.maint.python | Previous | Next | Find similar | Unroll thread


Thread

[long] entry points and package which doesn not provide egg info or  dist-info PICCA Frederic-Emmanuel <frederic-emmanuel.picca@synchrotron-soleil.fr> - 2023-09-20 11:50 +0200

csiph-web