添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

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

Thanks, I needed the libssl-dev package in addition to yours. Strange how pip decouples from system package management but doesn't even give hints about which package it could be I'm missing on a very common linux distribution. – Mitja May 25, 2016 at 19:15 I need both libcurl4-openssl-dev and libssl-dev on Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev – david euler Mar 27, 2018 at 12:44 In my case python-devel was missing as well, so the following solved the issue for me: yum install libcurl-devel python-devel – sokhaty Dec 2, 2017 at 5:05 Yup. Just apt install libcurl4-openssl-dev on an Ubuntu 20.04 system. (nowhere else mentioned for this OS distro) – Marcos May 28, 2022 at 2:02

in my case this fixed the problem:

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

as explained here

thanks for the python-dev package! i had this error without it : src/pycurl.h:4:20: fatal error: Python.h: No such file or directory – Skullone Apr 1, 2019 at 14:14 A better link would be stackoverflow.com/a/31002176/733092, which explains that these are libraries of C headers needed to build C Python extensions on Linux. – Noumenon Apr 26, 2022 at 8:33

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.

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 :-)

If the following solution giving you an error while installing them,

sudo apt install libcurl4-openssl-dev libssl-dev

then try to update your Linux os first with:

sudo apt update

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.
  • 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
            

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.