背景
centos6.5 中python2.6升級(jí)到2.7后,發(fā)現(xiàn)pip不可使用
[root@centos6 bin]# pip install virtualenv
-bash: pip: command not found
安裝pip
- 下載安裝包
傳送門(mén) 下載你自己想要的版本
[root@centos6 develop]# wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
- 解壓喂饥,安裝
[root@centos6 develop]# tar -zxf pip-18.1.tar.gz
[root@centos6 develop]# ls
pip-18.1 pip-18.1.tar.gz Python-2.7.15 Python-2.7.15.tgz
[root@centos6 develop]# cd pip-18.1
[root@centos6 pip-18.1]# python setup.py install
Traceback (most recent call last):
File "setup.py", line 6, in <module>
from setuptools import find_packages, setup
ImportError: No module named setuptools
[root@centos6 pip-18.1]#
可能會(huì)出現(xiàn)上面這個(gè)異常是缺少setuptools模塊。(請(qǐng)轉(zhuǎn)到下一步安裝setuptools模塊)
安裝好setuptools模塊字管,繼續(xù)pip安裝
[root@centos6 pip-18.1]# python setup.py install
...
Installed /usr/local/lib/python2.7/site-packages/pip-18.1-py2.7.egg
Processing dependencies for pip==18.1
Finished processing dependencies for pip==18.1
- 查找下pip
[root@centos6 pip-18.1]# whereis pip
pip: /usr/local/bin/pip2.7 /usr/local/bin/pip
- 嘗試使用下pip
這時(shí)候又出現(xiàn)以下問(wèn)題
[root@centos6 develop]# pip install virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting virtualenv
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/virtualenv/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/virtualenv/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/virtualenv/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/virtualenv/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/virtualenv/
Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
[root@centos6 develop]#
原因缺失 ssl模塊治力,繼續(xù)安裝ssl,在重新編譯桑李、安裝python
[root@centos6 develop]# rpm -aq|grep openssl
openssl-1.0.1e-15.el6.x86_64
#發(fā)現(xiàn)缺少openssl-devel模塊 yum安裝下
[root@centos6 develop]# yum install openssl-devel
#這時(shí)候查看下
[root@centos6 develop]# rpm -aq|grep openssl
openssl-1.0.1e-57.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64
#即安裝ssl模塊ok
#安裝后到剛編譯python目錄 重新編譯
[root@centos6 Python-2.7.15]# ./configure
[root@centos6 Python-2.7.15]# make && make install
這時(shí)候pip安裝好了。
[root@centos6 Python-2.7.15]# pip install virtualenv
Collecting virtualenv
Downloading https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl (1.9MB)
100% |████████████████████████████████| 1.9MB 237kB/s
Requirement already satisfied: setuptools>=18.0.0 in /usr/local/lib/python2.7/site-packages/setuptools-40.6.3-py2.7.egg (from virtualenv) (40.6.3)
Installing collected packages: virtualenv
Successfully installed virtualenv-16.2.0
安裝setuptools模塊
- 下載對(duì)應(yīng)安裝包
傳送門(mén) 找你想要安裝的對(duì)應(yīng)版本
[root@centos6 setuptools-40.6.3]# wget https://files.pythonhosted.org/packages/37/1b/b25507861991beeade31473868463dad0e58b1978c209de27384ae541b0b/setuptools-40.6.3.zip
[root@centos6 develop]# cd setuptools-40.6.3
[root@centos6 setuptools-40.6.3]#
- 構(gòu)建安裝
[root@centos6 setuptools-40.6.3]# python setup.py build
[root@centos6 setuptools-40.6.3]# python setup.py install
install 可能會(huì)出現(xiàn)下面問(wèn)題(沒(méi)有就忽略)
File "/usr/local/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/develop/setuptools-40.6.3/setuptools/command/bdist_egg.py", line 234, in run
dry_run=self.dry_run, mode=self.gen_header())
File "/develop/setuptools-40.6.3/setuptools/command/bdist_egg.py", line 495, in make_zipfile
z = zipfile.ZipFile(zip_filename, mode, compression=compression)
File "/usr/local/lib/python2.7/zipfile.py", line 736, in __init__
"Compression requires the (missing) zlib module"
RuntimeError: Compression requires the (missing) zlib module
上述問(wèn)題缺少 zlib模塊,需要安裝zlib模塊
[root@centos6 Python-2.7.15]# yum install zlib zlib-devel
#安裝后到剛編譯python目錄 重新編譯
[root@centos6 Python-2.7.15]# ./configure
[root@centos6 Python-2.7.15]# make && make install
重新回到setuptools目錄贵白,重新安裝剛才的步驟
[root@centos6 Python-2.7.15]# cd ../setuptools-40.6.3
[root@centos6 setuptools-40.6.3]# python setup.py build
running build
running build_py
[root@centos6 setuptools-40.6.3]# python setup.py install
這時(shí)候setuptools已經(jīng)安裝好了率拒。