'sip-distinfo not found' following update to SIP v6.6.2

Vautrin, Yohann Yohann.Vautrin at cnrc-nrc.gc.ca
Thu Jul 7 20:20:51 BST 2022


Hi,

I'm using PyQt-builder and SIP to wrap a Qt-based library for Python and I've had issues with the latest versions of PyQt-builder (v1.13.0) and SIP (v6.6.2).

When I build the wheel for my package (by calling "python -m build"), the process ends with the following messages:
/home/user/.pyenv/versions/dev-3.8/lib/python3.8/site-packages/pep517/in_process/sip-distinfo --inventory /tmp/tmp45zsfozw/inventory.txt --project-root /home/user/dev/MyProject/bindings/pyqt5-sip --prefix "" --generator _in_process.py --wheel-tag cp37-abi3-manylinux_2_35_x86_64 --requires-dist "PyQt5-sip (>=12.11, <13)" /tmp/tmp45zsfozw/wheel/PyQt5_MyProject-1.0.0.dist-info
/bin/sh: line 1: /home/user/.pyenv/versions/dev-3.8/lib/python3.8/site-packages/pep517/in_process/sip-distinfo: No such file or directory
make: *** [Makefile:340: install_distinfo] Error 127
_in_process.py: 'make install' failed returning 2

I believe the cause of this issue is the recent change mentioned in the changelog for SIP related to the PEP 517 build process (changeset 2768 with hash 98dbce3e62f1 in Mercurial). I've noticed that there are still mentions of "pep517" as a possible value for "tool" in PyQt-builder and removing code as shown in the diff below in pyqtbuild/builder.py seems to fix my problem:
------------------------------------------------------
diff -ru a/builder.py b/builder.py
--- a/builder.py	2022-07-06 15:47:58.095535865 -0400
+++ b/builder.py	2022-07-06 15:48:22.804522406 -0400
@@ -51,15 +51,6 @@
         """ Set default values for user options that haven't been set yet. """
 
         if tool in Option.BUILD_TOOLS:
-            # A PEP 517 frontend will set PATH so that sip-distinfo is found on
-            # it.  However for our own frontends we want to use the version
-            # corresponding to the frontend (and, anyway, the frontend may not
-            # be on PATH).
-            if tool != 'pep517':
-                self._sip_distinfo = os.path.join(
-                        os.path.abspath(os.path.dirname(sys.argv[0])),
-                        self._sip_distinfo)
-
             # Check we have a qmake.
             if self.qmake is None:
                 self.qmake = self._find_exe('qmake')
------------------------------------------------------

With this change the build process works, at least in non-isolated environment.

Thanks,
Yohann


More information about the PyQt mailing list