Python

pycurl install 尋找一個不存在的文件(libcurl.a)

  • December 16, 2011

我正在執行一個 Gentoo Linux 系統,在該系統下使用pip. 我已經成功安裝了 PIL 和 django,但由於某種原因,pycurl( 的依賴項cloudkey)正在翻轉,聲稱我的系統上沒有libcurl.a(注意它不是.la)。

curl已安裝。事實上,pycurl 安裝在主機系統上就好了,但它不會安裝到我的 virtualenv 中。這是輸出:

$ pip install cloudkey
Requirement already satisfied (use --upgrade to upgrade): cloudkey in /path/to/virtualenv/lib/python2.6/site-packages
Requirement already satisfied (use --upgrade to upgrade): distribute in /path/to/virtualenv/lib/python2.6/site-packages (from cloudkey)
Requirement already satisfied (use --upgrade to upgrade): simplejson>=2.0.9 in /path/to/virtualenv/lib/python2.6/site-packages (from cloudkey)
Downloading/unpacking pycurl>=7.19.0 (from cloudkey)
 Downloading pycurl-7.19.0.tar.gz (71Kb): 71Kb downloaded
 Running setup.py egg_info for package pycurl
Using curl-config (libcurl 7.23.1)
Installing collected packages: pycurl
 Running setup.py install for pycurl
Using curl-config (libcurl 7.23.1)
building 'pycurl' extension
x86_64-pc-linux-gnu-gcc -pthread -fPIC -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -I/usr/include/python2.6 -c src/pycurl.c -o build/temp.linux-x86_64-2.6/src/pycurl.o
x86_64-pc-linux-gnu-gcc -pthread -shared build/temp.linux-x86_64-2.6/src/pycurl.o -L/usr/lib64 -lcurl -lssl -lcrypto -lldap -lrt -lssl -lcrypto -lz -lssl -lcrypto -lldap -lrt -lssl -lcrypto -lz -lpython2.6 -o build/lib.linux-x86_64-2.6/pycurl.so /usr/lib64/libcurl.a -Wl,-O1 -Wl,--as-needed
x86_64-pc-linux-gnu-gcc: /usr/lib64/libcurl.a: No such file or directory
error: command 'x86_64-pc-linux-gnu-gcc' failed with exit status 1
Complete output from command /path/to/virtualenv/bin/python2.6 -c "import setuptools;__file__='/path/to/virtualenv/build/pycurl/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-kkwDnf-record/install-record.txt --install-headers /path/to/virtualenv/include/site/python2.6:
Using curl-config (libcurl 7.23.1)

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.6

creating build/lib.linux-x86_64-2.6/curl

copying python/curl/__init__.py -> build/lib.linux-x86_64-2.6/curl

running build_ext

building 'pycurl' extension

creating build/temp.linux-x86_64-2.6

creating build/temp.linux-x86_64-2.6/src

x86_64-pc-linux-gnu-gcc -pthread -fPIC -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_OPENSSL=1 -DHAVE_CURL_SSL=1 -I/usr/include/python2.6 -c src/pycurl.c -o build/temp.linux-x86_64-2.6/src/pycurl.o

x86_64-pc-linux-gnu-gcc -pthread -shared build/temp.linux-x86_64-2.6/src/pycurl.o -L/usr/lib64 -lcurl -lssl -lcrypto -lldap -lrt -lssl -lcrypto -lz -lssl -lcrypto -lldap -lrt -lssl -lcrypto -lz -lpython2.6 -o build/lib.linux-x86_64-2.6/pycurl.so /usr/lib64/libcurl.a -Wl,-O1 -Wl,--as-needed

x86_64-pc-linux-gnu-gcc: /usr/lib64/libcurl.a: No such file or directory

error: command 'x86_64-pc-linux-gnu-gcc' failed with exit status 1

----------------------------------------
Command /path/to/virtualenv/bin/python2.6 -c "import setuptools;__file__='/path/to/virtualenv/build/pycurl/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-kkwDnf-record/install-record.txt --install-headers /path/to/virtualenv/include/site/python2.6 failed with error code 1
Storing complete log in /home/daniel/.pip/pip.log

有什麼想法/建議嗎?

既然您提到您使用的是 Gentoo,您可能想使用 portage 來找出哪個包擁有該文件。您可以使用 equery ( emerge gentoolkit) 來確定哪個包擁有它:

equery belongs /usr/lib64/libcurl.a

引用自:https://serverfault.com/questions/341183