Posted on

This is an updated version to this older post. The unoffical binaries linked in the older post are no longer available.

I recently attempted to install PycURL library on my Windows 10 Python installation, with various challenges.

Running the usual pip install pycurl command gave me the following output:

> pip install pycurl
Collecting pycurl
  Using cached pycurl-7.45.1.tar.gz (233 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  ╰─> [5 lines of output]
        if LooseVersion(distutils.__version__) > LooseVersion("1.0.1"):
        if LooseVersion(distutils.__version__) < LooseVersion("1.0.3"):
      [end of output]
  note: This error originates from a subprocess, and is likely not a problem with pip.

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Searching the web led me to these installation instructions: There are currently no official binary Windows packages. You can build PycURL from source or use third-party binary packages.

Searching a little bit more on the web for pycurl binary Windows packages led me to this GitHub thread, linking to these CI artefacts.

Find the the appropriate pycurl release version, and then appropriate python version for you. At the time of writing pycurl 7.45.4 is the latest version, and I’m running python 3.9 in my current environment. A .zip file containing a .whl file is downloaded.

Install using pip install «whl-filepath»

C:\Temp>pip install pycurl-7.45.4-cp39-cp39-win_amd64.whl

Defaulting to user installation because normal site-packages is not writeable
Processing c:\temp\pycurl-7.45.4-cp39-cp39-win_amd64.whl
Installing collected packages: pycurl
Successfully installed pycurl-7.45.4

If you get the following error, you have the wrong version for your environment:

C:\Temp>pip install pycurl-7.45.4-cp312-cp312-win_amd64.whl

ERROR: pycurl-7.45.4-cp312-cp312-win_amd64.whl is not a supported wheel on this platform.

A solution to this issue may be found in this stackoverflow thread:

> pip debug --verbose
WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.
pip version: pip 22.3.1 from /.../
/.../
Compatible tags: 36
  cp310-cp310-win_amd64
  cp310-abi3-win_amd64
  cp310-none-win_amd64
  cp39-abi3-win_amd64
  cp38-abi3-win_amd64
  cp37-abi3-win_amd64
  cp36-abi3-win_amd64
  cp35-abi3-win_amd64
  cp34-abi3-win_amd64
  cp33-abi3-win_amd64
  cp32-abi3-win_amd64
  py310-none-win_amd64
/.../
comments powered by Disqus