首选参考
1、linux下安装python3
a、 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件)
1
2
|
yum groupinstall
'Development Tools'
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel
|
2 下载 Python3.5代码包
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz
在安装包中有一个README的文件,里面有写如何安装
tar Jxvf Python-3.5.0.tar.xz cd Python-0 ./configure --prefix=/usr/local/python3 make && make install
做软链:
mv /usr/bin/python /usr/bin/python_old
ln -s /usr/local/python3/bin/python3 /usr/bin/python
安装成功了!
如果提示:Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS
这是原因没有安装或升级oenssl:
yum install openssl-devel
再次重复编译方案python3.5:
最终如下:
pip安装
下载文件
wget https://bootstrap.pypa.io/get-pip.py--no-check-certificate
执行安装
python -pip.py
做软链:
ln -s /usr/local/python3/bin/pip3.5 /usr/local/bin/pip或/usr/bin/pip
执行pip命令,查看是否安装成功
pygame安装
pip install wheel
pip install pygame-1.9.3-cp35-cp35m-manylinux1_x86_64.whl
python
>>> import pygame
升级pip到最新版本:
pip install --upgrade pip
pip安装成功啦!
注:--no-check-certificate 表示安装时“不检查证书”,不加上可能无法安装。
2.安装包
requests包:
pip install requests
pyquery包:
pip install pyquery
pyMysqL包:
pip install pyMysqL
注意事项: 这种方法虽然能安装成功,但会导致yum不能正常使用。 解决方法: [root@template tools]# cp /usr/bin/yum /usr/bin/yum.backup_2016-08-02 修改第一行参数 vi /usr/bin/yum 把 !/usr/bin/python 修改为:/usr/bin/python_old 或 把 !/usr/bin/python 修改为:/usr/bin/python2.6 查看版本 [root@template Python-3.5.2] python --version Python 3.5.2
其他方式:
python环境搭建-Linux系统下python2.6.6升级python3.5.2步骤@H_404_225@
[root@template ~] python -v
# /usr/lib64/python2.6/encodings/utf_8.pyc matches /usr/lib64/python2.6/encodings/utf_8.py
import encodings.utf_8 precompiled from /usr/lib64/python2.6/encodings/utf_8.pyc
Python 2.6.6 (r266:84292,Jan 22 2014,09:42:36)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help",copyrightcredits" or licensefor more information.
dlopen(/usr/lib64/python2.6/lib-dynload/readline.so);
import readline dynamically loaded from /usr/lib64/python2.6/lib-dynload/readline.so
>>> exit()
Python3.5.2官方网站下载地址
https://www.python.org/downloads/source/
升级为python3.5版本步骤
root@template ~] cd /home/nulige/tools/
下载python-3.5.2
[root@template tools] wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
[root@template tools] ll
总用量 20104
-rw-r--r-- 1 root root 20566643 6月 26 05:47 Python-3.5.2.tgz
解压到下载目录
[root@template tools] tar zxvf Python-3.5.2.tgz
[root@template tools] ll
总用量 20108
drwxrwxr-x 16 1000 1000 4096 6月 26 05:38 Python-3.5.2
-rw-r--r-- 1 root root 20566643 6月 26 05:47 Python-3.5.2.tgz
-rwxrwxrwx. 1 root root 13259 5月 8 16:10 system_optimize_scripts.sh
进入解压后的文件夹
[root@template tools] cd Python-3.5.2
在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
[root@template Python-3.5.2] mkdir /usr/local/python3
开始编译安装
[root@template Python-3.5.2] ./configure --prefix=/usr/local/python3
make && make installchecking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... linux
中间步骤省略............
checking for --without-gcc... no
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Modules/Setup.config
config.status: creating Misc/python.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup
creating Modules/Setup.local
creating Makefile
[root@template Python-3.5.2] make && make install
中间步骤省略............
if test x" != " ; then \
rm -f /usr/local/python3/bin/python3-32; \
(cd /usr/local/python3/bin; ln -s python3.5-32 python3-32) \
fi
rm -f /usr/local/python3/share/man/man1/python3.1
(cd /usr/local/python3/share/man/man1; ln -s python3.5.1 python3.1)
xupgradexno" ; then \
case upgrade in \
upgrade) ensurepip=--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi
Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS
[root@template Python-3.5.2] echo $?
0
编译完成
###############################################此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字
[root@template Python-3.5.2] mv /usr/bin/python /usr/bin/python_old
再建立新版本python的软链接
[root@template Python-3.5.2] ln -s /usr/local/python3/bin/python3 /usr/bin/python
就会显示出python的新版本信息
[root@template Python-3.5.2] python
Python 3.5.2 (default,Aug 2 2016,11:35:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux
Type for more information.
>>> exit() <----退出python
PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。
注意事项:
这种方法虽然能安装成功,但会导致yum不能正常使用。
解决方法:
[root@template tools] python --version
Python 3.5.2
[root@template ~] python -v # /usr/lib64/python2.6/encodings/utf_8.pyc matches /usr/lib64/python2.6/encodings/utf_8.py import encodings.utf_8 precompiled from /usr/lib64/python2.6/encodings/utf_8.pyc Python 2.6.6 (r266:84292,Jan 22 2014,09:42:36) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help",copyrightcredits" or licensefor more information. dlopen(/usr/lib64/python2.6/lib-dynload/readline.so); import readline dynamically loaded from /usr/lib64/python2.6/lib-dynload/readline.so >>> exit()
Python3.5.2官方网站下载地址
https://www.python.org/downloads/source/
升级为python3.5版本步骤
root@template ~] cd /home/nulige/tools/ 下载python-3.5.2 [root@template tools] wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz [root@template tools] ll 总用量 20104 -rw-r--r-- 1 root root 20566643 6月 26 05:47 Python-3.5.2.tgz 解压到下载目录 [root@template tools] tar zxvf Python-3.5.2.tgz [root@template tools] ll 总用量 20108 drwxrwxr-x 16 1000 1000 4096 6月 26 05:38 Python-3.5.2 -rw-r--r-- 1 root root 20566643 6月 26 05:47 Python-3.5.2.tgz -rwxrwxrwx. 1 root root 13259 5月 8 16:10 system_optimize_scripts.sh 进入解压后的文件夹 [root@template tools] cd Python-3.5.2 在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本) [root@template Python-3.5.2] mkdir /usr/local/python3 开始编译安装 [root@template Python-3.5.2] ./configure --prefix=/usr/local/python3 make && make installchecking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for --enable-universalsdk... no checking for --with-universal-archs... no checking MACHDEP... linux 中间步骤省略............ checking for --without-gcc... no configure: creating ./config.status config.status: creating Makefile.pre config.status: creating Modules/Setup.config config.status: creating Misc/python.pc config.status: creating Misc/python-config.sh config.status: creating Modules/ld_so_aix config.status: creating pyconfig.h creating Modules/Setup creating Modules/Setup.local creating Makefile [root@template Python-3.5.2] make && make install 中间步骤省略............ if test x" != " ; then \ rm -f /usr/local/python3/bin/python3-32; \ (cd /usr/local/python3/bin; ln -s python3.5-32 python3-32) \ fi rm -f /usr/local/python3/share/man/man1/python3.1 (cd /usr/local/python3/share/man/man1; ln -s python3.5.1 python3.1) xupgradexno" ; then \ case upgrade in \ upgrade) ensurepip=--upgrade" ;; \ install|*) ensurepip="" ;; \ esac; \ ./python -E -m ensurepip \ $ensurepip --root=/ ; \ fi Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS [root@template Python-3.5.2] echo $? 0 编译完成 ###############################################此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字 [root@template Python-3.5.2] mv /usr/bin/python /usr/bin/python_old 再建立新版本python的软链接 [root@template Python-3.5.2] ln -s /usr/local/python3/bin/python3 /usr/bin/python 就会显示出python的新版本信息 [root@template Python-3.5.2] python Python 3.5.2 (default,Aug 2 2016,11:35:06) [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux Type for more information. >>> exit() <----退出python PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。 注意事项: 这种方法虽然能安装成功,但会导致yum不能正常使用。 解决方法: [root@template tools] python --version Python 3.5.2
@H_404_225@
问题:
$ yum
File "/usr/bin/yum",line 30
except KeyboardInterrupt,e:
^
原因:
这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.6或3.0后,出现语法解释错误。
解决办法:
很简单,一是升级yum,一是修改yum的解释器为旧版本python2.4(如果你没有采用覆盖升级的话)。
升级yum的作法就不详述了。修改yum的解释器为旧版本python2.4:
$ vi /usr/bin/yum
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.4"即可。