案發時間 : 201708 、 現場(環境): Ubuntu 14.04
受害者 (套件): pycurl、python-setuptools(easy_install)
筆錄(錯誤原因):
因為程式上的需求,需要安裝pycurl套件在系統當中,
但想透過pip去進行簡易安裝的時候,發現跳出錯誤,造成安裝失敗。
處理方式:
第一步:進行apt update
# apt-get update
檢查curl-config是否已經安裝
Ubuntu 14.04 狀態下是沒有安裝的。
Ubuntu 16.04 已經安裝完成。
用 whereis 來檢查安裝狀況。
#whereis curl-config
如果有裝安裝,就會向下面一樣顯示路徑。
ryu@ubuntu:~$ whereis curl-config
curl-config: /usr/bin/curl-config /usr/bin/X11/curl-config /usr/share/man/man1/curl-config.1.gz
如果沒安裝,只會有名稱,但沒有路徑
ryu@ubuntu:~$ whereis curl-config
curl-config:
那我們這邊簡單試一下,這個curl-config可能需要甚麼套件。
ryu@ubuntu:~$ curl-config
The program 'curl-config' can be found in the following packages:
* libcurl4-gnutls-dev
* libcurl4-nss-dev
* libcurl4-openssl-dev
Try: sudo apt-get install <selected package>
提示訊息都那麼清楚了,那我們就遵照他的步驟來進行吧。
#sudo apt-get install libcurl4-gnutls-dev
#sudo apt-get install libcurl4-nss-dev
#sudo apt-get install libcurl4-openssl-dev
安裝完這三個套件,curl-config就算正式安裝完畢。
接著我們要來準備我們的安裝工具(easy-tool)跟他的lib
#sudo apt-get install python-setuptools
#sudo apt-get install libxtst-dev
當這邊安裝完成,我們就可以用easy_install 指令去安裝套件了。
這邊我們要安裝的是 pycurl
#sudo easy_install pycurl
#!#################################################################
ryu@ubuntu:~$ sudo easy_install pycurl
Searching for pycurl
Reading https://pypi.python.org/simple/pycurl/
Downloading https://pypi.python.org/packages/12/3f/557356b60d8e59a1cce62ffc07ecc03e4f8a202c86adae34d895826281fb/pycurl-7.43.0.tar.gz#md5=c94bdba01da6004fa38325e9bd6b9760
Best match: pycurl 7.43.0
Processing pycurl-7.43.0.tar.gz
Writing /tmp/easy_install-G0C_V_/pycurl-7.43.0/setup.cfg
Running pycurl-7.43.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-G0C_V_/pycurl-7.43.0/egg-dist-tmp-Vfnu3d
Using curl-config (libcurl 7.35.0)
warning: no files found matching 'src/Makefile'
zip_safe flag not set; analyzing archive contents...
Moving pycurl-7.43.0-py2.7-linux-x86_64.egg to /usr/local/lib/python2.7/dist-packages
Adding pycurl 7.43.0 to easy-install.pth file
Installed /usr/local/lib/python2.7/dist-packages/pycurl-7.43.0-py2.7-linux-x86_64.egg
Processing dependencies for pycurl
Finished processing dependencies for pycurl
#!#################################################################
有看到安裝成功是非常開心的。
但安裝成功不代表可以使用,我們還是要來測試一下。
測試階段:
安裝後要進行pycurl有沒有安裝成功,
最簡單的方法就是進入python的環境下測試
這邊import pycurl 沒有出現其他錯誤提示訊息,就表示成功了。
ryu@ubuntu:~$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycurl
>>> quit()
到這邊,pycurl就算正確的安裝完畢了。
安裝錯誤訊息:
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
如果出現問題且gcc已經安裝完成了,
那我們注意一下python-dev有沒有正確安裝
#sudo apt-get install python-dev
基本上這邊安裝好後,重新測試一次安裝pycurl就會成功了。
後記:
就以這次安裝問題來說,原本我是打算用最簡單的方式來安裝pycurl
也就是使用pip,但使用pip安裝時跳出了下面的問題。
#sudo pip install pycurl
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-HtcwQj/pycurl/
上網查發現,很多人都說跟相依性套件有關係。
但絕大多數人都在說CentOS上使用pip安裝錯誤該安裝甚麼套件。
這部分已經有很多人介紹,所以就不多說。
反倒是沒有很多說ubuntu該怎麼辦的。
所以我這邊選擇改用easy_install的方法去進行安裝。
而在CentOS下要使用easy_install的話,只要安裝下面的套件就可以執行了
#yum -y install libcurl-devel
# easy_install pycurl
使用easy_install是我用的第二個方法。
--------------------------------------------------------------------------------------------------------
使用第一個方法後,但我還是無法安裝pycurl。
第一個方法我是去下載libcurl
下載網址http://curl.haxx.se/download/
抓了最新版的 url_7.XX.0.orig.tar.gz
進行了編譯及安裝的動作
#./configure --prefix=/usr/local/curl
#sudo make && sudo make install
重新安裝pycurl
#sudo pip install pycurl
然後我得到一樣的錯誤。
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-HtcwQj/pycurl/
-----------------------------------------------------------------------------------------------
當然後有人有分享在ubuntu上用其他方法安裝pycurl。
就依照自己的需求去找方法吧
(全篇完)
參考網址:
http://mycodetub.logdown.com/posts/745281-install-ubuntu-1604-pycurl
留言列表