python2.6升级2.7安装pip

背景

centos6.5 中python2.6升级到2.7后,发现pip不可使用

[root@centos6 bin]# pip install virtualenv
-bash: pip: command not found

安装pip

  1. 下载安装包
    传送门 下载你自己想要的版本
[root@centos6 develop]# wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
  1. 解压,安装
[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]# 

可能会出现上面这个异常是缺少setuptools模块。(请转到下一步安装setuptools模块
安装好setuptools模块,继续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
    这时候又出现以下问题
[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模块,继续安装ssl,在重新编译、安装python

[root@centos6 develop]# rpm -aq|grep openssl
openssl-1.0.1e-15.el6.x86_64
#发现缺少openssl-devel模块 yum安装下
[root@centos6 develop]# yum install openssl-devel
#这时候查看下
[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

这时候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模块

  • 下载对应安装包
    传送门 找你想要安装的对应版本
[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]# 
  • 构建安装
[root@centos6 setuptools-40.6.3]# python setup.py build 
[root@centos6 setuptools-40.6.3]#  python setup.py install 

install 可能会出现下面问题(没有就忽略)

  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

上述问题缺少 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

这时候setuptools已经安装好了。

猜你喜欢

转载自blog.csdn.net/weixin_33860737/article/details/87059878