Projet

Général

Profil

Development #88335

erreur setuptools lors d’une tentative de `pip install -e` dans un environnement virtuel (?)

Ajouté par Paul Marillonnet il y a environ un mois. Mis à jour il y a environ un mois.

Statut:
Solution déployée
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
19 mars 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Ce qui casse mon devinst en local.

setuptools fait appel, pour l’exécution des commandes du setup.py de publik-base-theme, au multiprocessing python qui à son tour tente de faire un dump pickle de certaines des fonctions déclarées dans le setup.py (tentative de dump pour une raison qui m’échappe), et sans surprise ça se passe mal :

Building wheels for collected packages: publik_base_theme
  Building editable for publik_base_theme (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building editable for publik_base_theme (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [132 lines of output]
      running editable_wheel
      creating /tmp/pip-wheel-uhnic3iy/.tmp-52lodenw/publik_base_theme.egg-info
      writing /tmp/pip-wheel-uhnic3iy/.tmp-52lodenw/publik_base_theme.egg-info/PKG-INFO
      # […]
      running build_themes_json
      running build_icons
      Traceback (most recent call last):
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 155, in run
          self._create_wheel_file(bdist_wheel)
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 357, in _create_wheel_file
          files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 280, in _run_build_commands
          self._run_build_subcommands()
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 307, in _run_build_subcommands
          self.run_command(name)
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-9dv4izo7/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "<string>", line 193, in run
        File "/usr/lib/python3.11/multiprocessing/pool.py", line 873, in next
          raise value
        File "/usr/lib/python3.11/multiprocessing/pool.py", line 540, in _handle_tasks
          put(task)
        File "/usr/lib/python3.11/multiprocessing/connection.py", line 206, in send
          self._send_bytes(_ForkingPickler.dumps(obj))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/usr/lib/python3.11/multiprocessing/reduction.py", line 51, in dumps
          cls(buf, protocol).dump(obj)
      _pickle.PicklingError: Can't pickle <function subprocess_run at 0x7f1901be3ba0>: attribute lookup subprocess_run on __main__ failed

Historique

#1

Mis à jour par Thomas Noël il y a environ un mois

Même pépin chez moi (Debian testing, trixie). Ca crash sur le "make install" de devinst, et plus spécifiquement lors de l'exécution de :

$ /home/thomas/envs/publik-env-py3/bin/pip3 install -e /home/thomas/src/publik-base-theme django==3.2.18

qui n'arrive pas à lancer l'étape "build_icons" du setup.py, crash au moment de :

        with Pool() as pool:
            for result in pool.imap_unordered(subprocess_run, cmds):
                if not result:
                    raise CompileError('error building icons')

avec l'erreur vue par Paul « Can't pickle <function subprocess_run at 0x7fc4e1176660>: attribute lookup subprocess_run on main failed »

#2

Mis à jour par Thomas Noël il y a environ un mois

Vu avec Manu qui était en pip 23.0.1, c'était sans problème : ça crashe depuis qu'il est passé à pip 24 comme Paul et moi.

#3

Mis à jour par Emmanuel Cazenave il y a environ un mois

Un contournement, dans le venv : pip install -U "pip < 23.2"

#4

Mis à jour par Emmanuel Cazenave il y a environ un mois

Emmanuel Cazenave a écrit :

Un contournement, dans le venv : pip install -U "pip < 23.2"

pip install "pip < 23.1"

#5

Mis à jour par Benjamin Dauvergne il y a environ un mois

Avec ce patch ça se passe mieux :

diff --git a/setup.py b/setup.py
index e99b6b54..107f9fee 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@ from distutils.command.build import build as _build
 from distutils.command.sdist import sdist
 from distutils.errors import CompileError
 from distutils.spawn import find_executable
-from multiprocessing import Pool
+from multiprocessing.pool import ThreadPool as Pool

 from setuptools import find_packages, setup
 from setuptools.command.install_lib import install_lib as _install_lib

#6

Mis à jour par Thomas Noël il y a environ un mois

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Thomas Noël
#7

Mis à jour par Robot Gitea il y a environ un mois

  • Tracker changé de Support à Development
  • Statut changé de En cours à Solution proposée

Thomas NOËL (tnoel) a ouvert une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Robot Gitea il y a environ un mois

  • Statut changé de Solution proposée à Solution validée

Paul Marillonnet (pmarillonnet) a approuvé une pull request sur Gitea concernant cette demande :

#9

Mis à jour par Robot Gitea il y a environ un mois

  • Statut changé de Solution validée à Résolu (à déployer)

Thomas NOËL (tnoel) a mergé une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Transition automatique il y a environ un mois

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF