背景
centos6.5 中python2.6升级到2.7后,发现pip不可使用
[root@centos6 bin]# pip install virtualenv
-bash: pip: command not found
安装pip
- 下载安装包
传送门 下载你自己想要的版本
[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]#
可能会出现上面这个异常是缺少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已经安装好了。
网友评论