"Could not run curl-config: [Errno 2] No such file or directory" when installing pycurl

PythonInstallationPycurl

Python Problem Overview


I'm trying to install pycurl via:

sudo pip install pycurl

It downloaded fine, but when when it runs setup.py I get the following traceback:

Downloading/unpacking pycurl
  Running setup.py egg_info for package pycurl
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>
        ext = get_extension()
      File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension
        ext_config = ExtensionConfiguration()
      File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__
        self.configure()
      File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix
        raise ConfigurationError(msg)
    __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>

    ext = get_extension()

  File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension

    ext_config = ExtensionConfiguration()

  File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__

    self.configure()

  File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix

    raise ConfigurationError(msg)

__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

Any idea why this is happening and how to get around it

Python Solutions


Solution 1 - Python

On Debian I needed the following packages to fix this

sudo apt install libcurl4-openssl-dev libssl-dev

Solution 2 - Python

Similarly with yum package manager

yum install libcurl-devel

If you use dnf, use

dnf install libcurl-devel

Solution 3 - Python

in my case this fixed the problem:

sudo apt-get install libssl-dev libcurl4-openssl-dev python-dev

as explained here

Solution 4 - Python

In Alpine linux you should do:

apk add curl-dev python3-dev libressl-dev

Solution 5 - Python

Same solution provided by @Michael Rice works for Ubuntu 18.04 as well

Ubuntu 18.04 LTS
sudo apt install libcurl4-openssl-dev libssl-dev

Al thought it is mentioned in comments of Michael's answer but thought highlight for easy of use.

Solution 6 - Python

I encountered the same problem whilst trying to get Shinken 2.0.3 to fire up on Ubuntu. Eventually I did a full uninstall then reinstalled Shinken with pip -v. As it cleaned up, it mentioned:

> Warning: missing python-pycurl lib, you MUST install it before launch the shinken daemons

Installed that with apt-get, and all the brokers fired up as expected :-)

Solution 7 - Python

That solved my problem on Ubuntu 14.04:

> apt-get install libcurl4-gnutls-dev

Solution 8 - Python

On OpenSUSE:

zypper in libcurl-devel 

Solution 9 - Python

In my case i kept getting the same error message. I use fedora. I solved it by doing:

sudo dnf install pycurl

This installed eveything that I needed for it to work.

Solution 10 - Python

I had this issue on Mac and it was related to the openssl package being an older version of what it was required by pycurl. pycurl can use other ssl libraries rather than openssl as per my understanding of it. Verify which ssl library you're using and update as it is very likely to fix the issue.

I fixed this by:

  • running brew upgrade
  • downloaded the latest pycurl-x.y.z.tar.gz from http://pycurl.io/
  • extracted the package above and change directory into it
  • ran python setup.py --with-openssl install as openssl is the library I have installed. If you're ssl library is either gnutls or nss then will have to use --with-gnutls or --with-nss accordingly. You'll be able to find more installation info in their github repository.

Solution 11 - Python

In addition to the answer of eldos I also needed gcc in CentOS 7:

yum install libcurl-devel gcc

Solution 12 - Python

Be advised that if you're using nodejs there's (at the time of writing) a dependency on libssl 1.0.* - so installing an alternative SSL library will break your nodejs installation.

An alternative solution to installing a different SSL library is that posted in this answer here: https://stackoverflow.com/a/59927568/13564342 to instead install libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser3688241View Question on Stackoverflow
Solution 1 - PythonMichael RiceView Answer on Stackoverflow
Solution 2 - PythoneldosView Answer on Stackoverflow
Solution 3 - PythonmuimotaView Answer on Stackoverflow
Solution 4 - PythonAlexView Answer on Stackoverflow
Solution 5 - PythonShakeelView Answer on Stackoverflow
Solution 6 - PythonChris WoodsView Answer on Stackoverflow
Solution 7 - PythondnaranjoView Answer on Stackoverflow
Solution 8 - PythonElliottView Answer on Stackoverflow
Solution 9 - PythonT. FerrieraView Answer on Stackoverflow
Solution 10 - PythonSylvesterAbreuLoretoView Answer on Stackoverflow
Solution 11 - PythonalelorcaView Answer on Stackoverflow
Solution 12 - PythonJames HollingsworthView Answer on Stackoverflow