我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收录的那些)