Skip to content

Installing from source with --pre fails under specific condition with pip 21.2.1  #10222

@t20100

Description

@t20100

Description

There is an issue when a project has a build dependency for which a pre-release version is available and which is stated both in pyproject.toml and setup_requires in setup.py.

In this case, trying to install it from source with pip (either from the source directory or from a tarball) with the --pre option fails (see below for the output).

This issue arises with cython for which an alpha version is available.

This issue does not occur:

  • When removing the failing dependency from either pyproject.toml or setup_requires (which is what I'll do).
  • Without the --pre flag
  • When also adding --no-build-isolation

Expected behavior

I'm not sure what is the expected behavior, but this was working with pip v21.1.3 and previous and breaks with pip v21.2.x

pip version

21.2.1 and 21.2

Python version

3.7

OS

macos

How to Reproduce

Create a project in a testpip directory with:

  • pyproject.toml:
    [build-system]
    requires = ["setuptools", "wheel", "Cython"]
    build-backend = "setuptools.build_meta"
    
  • setup.py:
    setup(
        name="testpip",
        version="0.0.1",
        py_module=["testpip"],
        setup_requires=["Cython"],
    )
    
  • testpip.py

Run pip install . --pre from testpip/

Output

pip install . --pre
Processing /testpip

  DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
   pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
ERROR: Some build dependencies for file:///testpip conflict with the backend dependencies: Cython==3.0.0a9 is incompatible with Cython.


### Code of Conduct

- [X] I agree to follow the [PSF Code of Conduct](https://www.python.org/psf/conduct/).

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: PEP 517 impactAffected by PEP 517 processingtype: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions