pyproject-hooks: Unable to `pip install .` on a setup.py-based project

I’m incorporating by reference this PIP issue: https://github.com/pypa/pip/issues/12131

(venv-test-3.12) bash-5.2$ ls -la
total 36
drwxr-xr-x   3 arcivanov arcivanov    81 Jul  5 16:58 .
drwxr-xr-x. 12 arcivanov arcivanov  4096 Jul  5 16:58 ..
-rwxr-xr-x   1 arcivanov arcivanov  8502 Jun 22 15:35 build.py
-rw-rw-r--   1 arcivanov arcivanov 11344 Mar  1  2020 LICENSE
-rw-r--r--   1 arcivanov arcivanov  3004 Jun 22 15:36 README.md
-rw-rw-r--   1 arcivanov arcivanov  1895 Aug 31  2021 setup.py
drwxr-xr-x   6 arcivanov arcivanov    76 Feb  1  2020 src
(venv-test-3.12) bash-5.2$ pip -vvvvvvvvvvvvv  install .
Using pip 23.1.2 from /home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip (python 3.12)
Non-user install because user site-packages disabled
Created temporary directory: /tmp/pip-build-tracker-a_o8dsgw
Initialized build tracking at /tmp/pip-build-tracker-a_o8dsgw
Created build tracker: /tmp/pip-build-tracker-a_o8dsgw
Entered build tracker: /tmp/pip-build-tracker-a_o8dsgw
Created temporary directory: /tmp/pip-install-ifc8yem4
Created temporary directory: /tmp/pip-ephem-wheel-cache-lnikv5l9
Processing /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp
  Added file:///home/arcivanov/Documents/src/pybuilder/pybuilder/tmp to build tracker '/tmp/pip-build-tracker-a_o8dsgw'
  Created temporary directory: /tmp/pip-build-env-v01egvus
  Running command pip subprocess to install build dependencies
  Using pip 23.1.2 from /home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip (python 3.12)
  Collecting setuptools>=40.8.0
    Using cached setuptools-68.0.0-py3-none-any.whl (804 kB)
  Collecting wheel
    Using cached wheel-0.40.0-py3-none-any.whl (64 kB)
  Installing collected packages: wheel, setuptools
    Creating /tmp/pip-build-env-v01egvus/overlay/bin
    changing mode of /tmp/pip-build-env-v01egvus/overlay/bin/wheel to 755
  Successfully installed setuptools-68.0.0 wheel-0.40.0
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  PyBuilder version ${dist_version}
  Build started at 2023-07-05 16:58:53
  ------------------------------------------------------------
  [INFO]  Building pybuilder version 0.13.10.dev (0.13.10.dev20230705205853)
  [INFO]  Executing build in /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp
  [INFO]  Going to execute tasks: clean, package
  [INFO]  Removing target directory /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target
  [INFO]  Processing plugin packages 'coverage>=6.0' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'cram' to be installed with {}
  [INFO]  Processing plugin packages 'flake8>=4.0' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'pdoc3>=0.8.3' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'pypandoc~=1.4' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'setuptools>=38.6.0' to be installed with {}
  [INFO]  Processing plugin packages 'sphinx' to be installed with {}
  [INFO]  Processing plugin packages 'twine>=1.15.0' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'unittest-xml-reporting>=3.0.4' to be installed with {'upgrade': True}
  [INFO]  Processing plugin packages 'wheel>=0.34.0' to be installed with {}
  [INFO]  Creating target 'build' VEnv in '/home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/venv/build/cpython-3.12.0.beta.3'
  [INFO]  Processing dependency packages 'pygments' to be installed with {}
  [INFO]  Creating target 'test' VEnv in '/home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/venv/test/cpython-3.12.0.beta.3'
  [INFO]  Building distribution in /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev
  [INFO]  Copying scripts to /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev/scripts
  [INFO]  Copying resources matching 'LICENSE' from /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp to /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev/pybuilder
  [INFO]  Writing MANIFEST.in as /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev/MANIFEST.in
  [INFO]  Writing setup.py as /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev/setup.py
  [INFO]  Filter resources matching pybuilder/__init__.py in /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp/target/dist/pybuilder-0.13.10.dev
  ------------------------------------------------------------
  BUILD SUCCESSFUL
  ------------------------------------------------------------
  Build Summary
               Project: pybuilder
               Version: 0.13.10.dev (0.13.10.dev20230705205853)
        Base directory: /home/arcivanov/Documents/src/pybuilder/pybuilder/tmp
          Environments:
                 Tasks: clean [0 ms] prepare [16075 ms] compile_sources [0 ms] package [79 ms]
  Build finished at 2023-07-05 16:59:09
  Build took 16 seconds (16370 ms)
  running egg_info
  creating pybuilder.egg-info
  writing pybuilder.egg-info/PKG-INFO
  writing dependency_links to pybuilder.egg-info/dependency_links.txt
  writing entry points to pybuilder.egg-info/entry_points.txt
  writing namespace_packages to pybuilder.egg-info/namespace_packages.txt
  writing top-level names to pybuilder.egg-info/top_level.txt
  writing manifest file 'pybuilder.egg-info/SOURCES.txt'
  reading manifest file 'pybuilder.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file 'pybuilder.egg-info/SOURCES.txt'
  Getting requirements to build wheel ... done
ERROR: Could not install packages due to an OSError.
Traceback (most recent call last):
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 73, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 491, in collect_root_requirements
    req = self._make_requirement_from_install_req(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 293, in __init__
    super().__init__(
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 225, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 516, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 631, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 69, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 48, in prepare_distribution_metadata
    self._install_build_reqs(finder)
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 118, in _install_build_reqs
    build_reqs = self._get_build_requires_wheel()
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py", line 95, in _get_build_requires_wheel
    return backend.get_requires_for_build_wheel()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_internal/utils/misc.py", line 692, in get_requires_for_build_wheel
    return super().get_requires_for_build_wheel(config_settings=cs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 166, in get_requires_for_build_wheel
    return self._call_hook('get_requires_for_build_wheel', {
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 317, in _call_hook
    data = read_json(pjoin(td, 'output.json'))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/arcivanov/.pyenv/versions/3.12.0b3/envs/venv-test-3.12/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 19, in read_json
    with open(path, encoding='utf-8') as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmptnjziu_l/output.json'
Remote version of pip: 23.1.2
Local version of pip:  23.1.2
Was pip installed by pip? True
Removed file:///home/arcivanov/Documents/src/pybuilder/pybuilder/tmp from build tracker '/tmp/pip-build-tracker-a_o8dsgw'
Removed build tracker: '/tmp/pip-build-tracker-a_o8dsgw'

Since this is a pure setup.py there is no pyproject.toml involved and legacy should keep functioning.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 31 (16 by maintainers)

Commits related to this issue

Most upvoted comments

I’m just writing an issue for them