python的多版本安装以及常见错误(长期更新)
(此⽂长期更新)Python安装常见错误汇总
注:本教程以python3.6为基准
既然是总结安装过程中遇到的错误,就顺便记录⼀下我的安装过程好了。
先来列举⼀下安装python3.6过程中可能需要的依赖包:
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
编译安装过程:确保此时所在⽬录为/usr/local/Python-3.6.4,即解压后的包⽬录。ls看⼀下有什么
aclocal.m4 config.sub Include Mac Modules Programs Python setup.py
build configure install-sh Makefile Objects python-config Tools
config.guess configure.ac Lib Makefile.pre Parser pyconfig.h python-config.py
config.log Doc libpython3.6m.a Makefile.pre.in PC pyconfig.h.in python-gdb.py
config.status Grammar LICENSE Misc PCbuild python README.rst
1../configure --prefix=/usr/local/python3 --enable-optimizations
注:--prefix指定编译⽬录,即为之前创建的/usr/local/python3, --enable-optimizations指最优化安装
2.编译make、安装make install,或⼀次执⾏make & make install.编译过程⼗分漫长(可能七⼋分钟,视具体情况⽽定),喝杯咖啡,耐⼼等待^_^
3.最后⼀步,创建软链接.
[root@localhost Python-3.6.4]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
有⼈可能好奇为啥要创建这个软链接,echo⼀下环境变量PATH发现/usr/local/python3/bin不存在,我们知道想要⼀个命令能够不加完整路径名直接执⾏,那么对应的可执⾏⽂件必须在环境变量PATH中。对此有两种解决⽅式,
⽅式a.导⼊环境变量:export PATH="$PATH:/usr/local/python3/bin"记住,不能忽略PATH串中的$PATH,否则将意味着覆盖原有路径。
⽅式b.将相应的可执⾏程序放在已经存在环境变量中,这⾥我们推荐/usr/bin(墨守陈规的)。
解释⼀下:1./usr/bin下⾯的都是系统预装的可执⾏程序,会随着系统升级⽽改变。
2./usr/local/bin⽬录是给⽤户放置⾃⼰的可执⾏程序的地⽅,推荐放在这⾥,不会被系统升级⽽覆盖同名⽂件。(还记得吗,我们之前编译的路径就在这⾥)
好了,扯远了。。。回归正题,直接上创建软链接的步骤:
1. 删除原本指向python
2.x的软链接,rm -rf /usr/bin/python
2. 创建指向python
3.6的软链接,ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
3. ⾄此安装结束,验证安装成功python -V(⼤写的V哦),显⽰对应的版本号即表⽰安装成功了~
安装过程中遇到的错误
如果本机中已经存在旧版本python(python2.x)的情况下,安装python3.x,以下配置⽂件需要更改:
1./usr/bin/yum
2./usr/libexec/urlgrabber-ext-down
!/usr/bin/python ---> #!/usr/bin/python2
解释⼀下:1.yum包管理器是由默认的(系统⾃带)python2.x编写的,当我们以python3的软链接覆盖原本的python2的软连接时(ln -s /usr/local/python3/bin/python3.7 /usr/bin/python),python的默认版本变为python3,会导致yum⽆法执⾏.
2./usr/libexec/urlgrabber-ext-down是yum下载好安装包之后执⾏安装的脚本,因此要想软件被正确安装,此⽂件也需要修改默认的python 版本.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论