pycurl
pycurl copied to clipboard
Installation fails because only static libcurl searched (dynamic not found)
I'm using a Mageia 3 Linux box, which doesn't provide static libraries:
https://wiki.mageia.org/en/Libraries_policy#.2A.la_files https://wiki.mageia.org/en/Packaging_guidelines#Packaging_Static_Libraries
Fedora has the same policy:
https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries
But dynamic libraries are provided. For instance, running locate libcurl.so returns:
/usr/lib/libcurl.so
/usr/lib/libcurl.so.4
/usr/lib/libcurl.so.4.3.0
The problem is that pycurl2 installer looks for static library libcurl.a only, so the installation fails. Indeed, running easy_install pycurl2 (as root) returns:
Searching for pycurl2
Reading https://pypi.python.org/simple/pycurl2/
Best match: pycurl2 7.20.0
Downloading https://pypi.python.org/packages/source/p/pycurl2/pycurl2-7.20.0.tar.gz#md5=784527d7cdbf77822a096e687ad3a5cc
Processing pycurl2-7.20.0.tar.gz
Writing /tmp/easy_install-W3SUD0/pycurl2-7.20.0/setup.cfg
Running pycurl2-7.20.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-W3SUD0/pycurl2-7.20.0/egg-dist-tmp-aDnmP3
Using curl-config (libcurl 7.28.1)
Using curl directory: None
warning: no files found matching '*.txt'
warning: no files found matching '*.md'
warning: no files found matching '*.md' under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
warning: no previously-included files matching '*.pyo' found under directory 'tests'
warning: no previously-included files matching '*.pyc' found under directory 'old_tests'
warning: no files found matching '*.pyo' under directory 'old_tests'
src/pycurl.c: In function ‘multi_socket_callback’:
src/pycurl.c:2412:11: attention : call to ‘_curl_easy_getinfo_err_string’ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
src/pycurl.c: In function ‘do_multi_info_read’:
src/pycurl.c:2900:15: attention : call to ‘_curl_easy_getinfo_err_string’ declared with attribute warning: curl_easy_getinfo expects a pointer to char * for this info [enabled by default]
In function ‘util_curl_unsetopt’,
inlined from ‘do_curl_unsetopt’ at src/pycurl.c:1618:5:
src/pycurl.c:1549:9: attention : call to ‘_curl_easy_setopt_err_CURLSH’ declared with attribute warning: curl_easy_setopt expects a CURLSH* argument for this option [enabled by default]
gcc: error: /usr/lib/libcurl.a: No such file or directory
error: Setup script exited with error: command 'gcc' failed with exit status 1
It must be noticed that installing pycurl2, not with easy_install pycurl2, but by cloning the current repository and running, as root, python setup.py install works smoothly.
+1. The same problem with ArchLinux.