Error in installation pycurl 7.19.0

Renato Cassino picture Renato Cassino · Jun 7, 2016 · Viewed 18.8k times · Source

I need install this specific version (7.19.0) pycurl.

When I try to install with this command:

pip install pycurl==7.19.0

I'm receiving this error.

Failed building wheel for pycurl   Running setup.py clean for pycurl Failed to build pycurl Installing collected packages: pycurl

..... // MULTIPLE LINES

 build/temp.linux-x86_64-2.7/src/pycurl.o: na função `initpycurl':
    /tmp/pip-build-4Q4V7Q/pycurl/src/pycurl.c:3904: referência indefinida para `PyEval_InitThreads'
    collect2: error: ld returned 1 exit status
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ---------------------------------------- Command "/home/user/.virtualenvs/myenv/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-4Q4V7Q/pycurl/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-UlYKto-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/.virtualenvs/myenv/include/site/python2.7/pycurl" failed with error code 1 in /tmp/pip-build-4Q4V7Q/pycurl/

How can I do to install this specific version?

I'm using Ubuntu 16.

Thanks!

Answer

Alexander Tyapkov picture Alexander Tyapkov · Dec 2, 2016

Run within environment:

apt-cache depends python-pycurl

It will output something similar to:

  Depends: python
  Depends: python
  Depends: <python:any>
    python
  Depends: libc6
  Depends: libcurl3-gnutls
  Suggests: libcurl4-gnutls-dev
  Suggests: python-pycurl-dbg
  Suggests: python-pycurl-doc

Install libcurl4-gnutls-dev:

sudo apt-get install libcurl4-gnutls-dev

Check now if you can install pycurl within env:

pip install pycurl

If it is not working and throws error "Cannot create wheel" or similar go further with:

apt-cache search gnutl | grep dev

The output is:

libcurl4-gnutls-dev - development files and documentation for libcurl (GnuTLS flavour)
libgnutls-dev - GNU TLS library - development files
libgnutls28-dev - dummy transitional package for GNU TLS library - development files
libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled)
libsoup-gnome2.4-dev - HTTP library implementation in C -- GNOME support development files

In my case, after installing:

sudo apt-get install libgnutls-dev

I was able to install PyCurl within virtualenv