我centos7上同時有python2.7和python3.5。現在希望能在使用python3.5時也能用pip。本來這應該是很容易的一件事,然而我一步步掉進坑里。。
官網安裝pip的方法是,https://pip.pypa.io/en/stable/installing/
於是我執行了
wget https://bootstrap.pypa.io/get-pip.py
python3.5 get-pip.py
報錯 zipimport.ZipImportError: can't decompress data; zlib not available
一頓google,把這兩個鏈接里的包都安裝上好了
http://askubuntu.com/questions/661039/trouble-with-zip-support-in-custom-python-build-zipimport-zipimporterror-cant
https://stackoverflow.com/questions/37723236/pip-error-while-installing-python-ignoring-ensurepip-failure-pip-8-1-1-requir/37723517#37723517
1.安裝zlib
yum install -y zlib yum install -y zlib-develyum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel
2.重新編譯安裝python3.5
/usr/local/lib是之前python3.5的安裝路徑,使用altinstall增量安裝,因此zlib安裝路徑要和之前的安裝路徑保持一致
./configure --with-zlib-dir=/usr/local/lib
make
make altinstall
使用下面的語句確保沒有報錯了
python3.5 -m ensurepip
檢查一下,現在的情況如下圖。這么說,pip裝好了,python2.7和3.5應該都可以用pip了。
What! 為什么還是不能用??
后來發現wget也用不了。。懷疑是機器本身網絡有問題!
找了雲主機的網絡管理員幫忙檢查,在開通了防火牆所有進出端口之后,wget好了!pip install好了一半,如下:
啊!每次以為終於要通關了,卻還有新的一關,淚目啊!
我決定先把readline源碼包下載了再說,於是:(使用-i指定國內的pip源,下載快啊)
(其實沒裝pip也完全可以下載啊,找到對應版本包去wget下來就好了嘛)
python3.5 -m pip download readline -i https://pypi.doubanio.com/simple
咱自己編譯安裝吧,像這樣安裝python第三方源碼包:
tar -xf readline-6.2.4.1.tar.gz cd readline-6.2.4.1 python setup.py install #這句最關鍵
然而還是報錯啊,跟之前pip install報錯內容一樣的。於是又google了一下,參考了這個http://stackoverflow.com/questions/22166277/gcc-error-when-im-trying-to-install-readline-6-2
安裝了這些:
yum install -y patch yum install -y readline-devel #這個連帶裝了依賴包ncurses-dev
再次編譯安裝
python setup.py install
終於安裝上了!使用pip list可以列出所有已安裝的第三方python包(只包括被pip收錄的那些)