之所以写这篇博客,也是有很多原因了,每次安装都要从网上各种百度,网上的答案也是各种各样,于是决定好好总结一下,下面是我在安装的过程中参考的几篇博客,附上相应的链接:
http://www.cnblogs.com/rookie404/p/6142151.html
http://www.cnblogs.com/wenchengxiaopenyou/p/5709218.html
https://seofangfa.com/python-note/setuptools-compression-requires-the-missing-zlib-module.html
http://daiqingyang.blog.51cto.com/1070509/1275432/
好的,接下来进入文章的正题:
linux下安装python3
不建议卸载python2 可能会导致系统内其他软件无法使用.
1、下载
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz
2、解压
tar xvf Python-3.6.0a1.tar.xz
3、编译安装
进入目录Python-3.6.0a1,执行以下两个命令:
./configure --perfix /usr/local/test
make && make install
4、测试
输入python3:
-
[root@iz2zea81ksgk8xh72ofrr0z tmp]# python3
-
Python 3.6.0a1 (default, Aug 19 2017, 14:53:46)
-
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
-
Type "help", "copyright", "credits" or "license" for more information.
-
>>>
如果显示上面的内容,说明安装成功。
部分截图:
接下来我们来安装setuptools,到这里面遇到了开始遇到坑了。
1、下载
wget –no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
2、解压
tar -zxvf setuptools-19.6.tar.gz
-
[root@iz2zea81ksgk8xh72ofrr0z software]# ll |grep setuptools-19.6
-
drwxr-xr-x 10 501 games 4096 Aug 19 17:34 setuptools-19.6
-
-rw-r--r-- 1 root root 641502 Jan 25 2016 setuptools-19.6.tar.gz
3、进入setuptools-19.6编译安装
-
cd setuptools-19.6.tar.gz
-
python3 setup.py build
-
python3 setup.py install
到这里如果你还没有报错的话,说明setuptools已经安装成功了,但是在这里我遇到了一个坑,当我执行python3 setup.py install时出现了错误,报错信息如下:
Compression requires the (missing) zlib module.
- :提示的很清楚,缺少 zlib模块导致安装失败
处理方式:
1、先安装缺少的模块(2行命令)
yum install zlib
yum install zlib-devel
2、下载zlib成功后, cd Python-3.6.0a1的目录,重新执行下面的这个命令:
make && make install
3、重新进入setuptools-19.6目录,再次执行下面的命令:
python3 setup.py install
到这里问题解决,setuptools-19.6安装成功.
接下来我们安装Pip3
1、下载
wget –no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
2、解压
tar -zxvf pip-8.0.2.tar.gz
-
[root@iz2zea81ksgk8xh72ofrr0z software]# ll |grep pip
-
drwxr-xr-x 7 501 games 4096 Aug 19 17:44 pip-8.0.2
-
-rw-r--r-- 1 root root 1130183 Aug 19 17:40 pip-8.0.2.tar.gz
3、进入pip-8.0.2目录,编译安装:
-
cd pip-8.0.2
-
python3 setup.py build
-
python3 setup.py install
到这里pip3就安装成功了,可以检查一下:
-
[root@iz2zea81ksgk8xh72ofrr0z software]# whereis pip3
-
pip3: /usr/local/bin/pip3 /usr/local/bin/pip3.6
我当时到这里以为安装成功了,但是当执行pip3的时候,报错了,信息如下:
cannot import name HTTPSHandler.
问题:提示的很清楚,缺少 HTTPSHandler模块导致安装失败
处理方式:
1、先安装缺少的模块(2行命令)
-
yum install openssl
-
yum install openssl-devel
2、下载 HTTPSHandler成功后, cd Python-3.6.0a1的目录,重新执行下面的这个命令:
make && make install
当我执行完上一行命令之后,出现了下面的日志(部分)
-
Ignoring indexes: https://pypi.python.org/simple
-
Collecting setuptools
-
Collecting pip
-
Installing collected packages: setuptools, pip
-
Found existing installation: setuptools 19.6
-
Uninstalling setuptools-19.6:
-
Successfully uninstalled setuptools-19.6
-
Found existing installation: pip 8.0.2
-
Uninstalling pip-8.0.2:
-
Successfully uninstalled pip-8.0.2
-
Successfully installed pip setuptools
从最后一行Successfully installed pip setuptools可以看出,我的setuptools和pip随之跟着也成功了,验证一下:
-
[root@iz2zea81ksgk8xh72ofrr0z software]# pip3
-
Usage:
-
pip <command> [options]
-
Commands:
-
install Install packages.
-
download Download packages.
-
uninstall Uninstall packages.
-
freeze Output installed packages in requirements format.
-
list List installed packages.
-
show Show information about installed packages.
-
search Search PyPI for packages.
-
wheel Build wheels from your requirements.
-
hash Compute hashes of package archives.
-
completion A helper command used for command completion
-
help Show help for commands.
-
General Options:
-
-h, --help Show help.
-
--isolated Run pip in an isolated mode, ignoring environment variables and user configuration.
-
-v, --verbose Give more output. Option is additive, and can be used up to 3 times.
-
-V, --version Show version and exit.
-
-q, --quiet Give less output.
-
--log <path> Path to a verbose appending log.
-
--proxy <proxy> Specify a proxy in the form [user:passwd@]proxy.server:port.
-
--retries <retries> Maximum number of retries each connection should attempt (default 5 times).
-
--timeout <sec> Set the socket timeout (default 15 seconds).
-
--exists-action <action> Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
-
--trusted-host <hostname> Mark this host as trusted, even though it does not have valid or any HTTPS.
-
--cert <path> Path to alternate CA bundle.
-
--client-cert <path> Path to SSL client certificate, a single file containing the private key and the
-
certificate in PEM format.
-
--cache-dir <dir> Store the cache data in <dir>.
-
--no-cache-dir Disable the cache.
-
--disable-pip-version-check
-
Don't periodically check PyPI to determine whether a new version of pip is available for
-
download. Implied with --no-index.
OK,大功告成!
总结一下注意的点,每次安装完缺少的模块之后,都需要:cd Python-3.6.0a1的目录,重新执行下面的这个命令: