votes up 4

py-limited-api must match '%s'

Exception Class:

Raise code

        self.root_is_pure = not (self.distribution.has_ext_modules()
                                 or self.distribution.has_c_libraries())

        if self.py_limited_api and not re.match(PY_LIMITED_API_PATTERN, self.py_limited_api):
            raise ValueError("py-limited-api must match '%s'" % PY_LIMITED_API_PATTERN)

        # Support legacy [wheel] section for setting universal
        wheel = self.distribution.get_option_dict('wheel')
        if 'universal' in wheel:
            # please don't define this in your global configs
😲  Walkingbet is Android app that pays you real bitcoins for a walking. Withdrawable real money bonus is available now, hurry up! 🚶

Ways to fix

votes up 1 votes down

Short answer:

Make sure you use version 3 of python/pip which you use to run command which gives exception.


python --version
pip --version

We recommend always using python3 and pip3 as it gives a guarantee.


python3 --version
pip3 --version


In pip output, you can find the connected python version in round brackets at the end of the line.




The wheel package is a PYPA official package that is used under the hood when you run commands related to package creation, installation, and so on. Most commonly it is pip, wheel, bdist_wheel commands.


If you check the latest wheel versions, you will see that actually used python version checked to match against: r'cp3\d' the source code

  • cp - means CPython
  • 3 - major python number
Apr 16, 2021 ivan answer
ivan 110

Add a possible fix

Please authorize to post fix