(此文长期更新)Python安装常见错误汇总

注:本教程以python3.6为基准

既然是总结安装过程中遇到的错误,就顺便记录一下我的安装过程好了。

  • 先来列举一下安装python3.6过程中可能需要的依赖包:

    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

  • 准备工作:使用wget下载官网提供给我们的源码包,若为安装wget则执行yum install -y wget

    1.移动到我们下载源码包的目录下 cd /usr/local/

    2.下载源码包 wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

    3.解压 tar -zxvf Python-3.6.4.tgz

    4.删除安装包 rm -rf Python-3.6.4.tgz

    5.创建编译的路径 mkdir /usr/local/python3

  • 编译安装过程:确保此时所在目录为/usr/local/Python-3.6.4,即解压后的包目录。ls看一下有什么

aclocal.m4     config.sub    Include          Mac              Modules  Programs        Python            setup.py
build configure install-sh Makefile Objects pybuilddir.txt 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. 删除原本指向python2.x的软链接,rm -rf /usr/bin/python
  2. 创建指向python3.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版本.

python的多版本安装以及常见错误(长期更新)的更多相关文章

  1. SVN中的常见错误(长期更新)

    一 svn中的简写含义. A:add,新增 C:conflict,冲突 D:delete,删除 M:modify,本地已经修改 G:modify and merGed,本地文件修改并且和服务器的进行合 ...

  2. Elasticsearch学习之ElasticSearch 5.0.0 安装部署常见错误或问题

    ElasticSearch 5.0.0 安装部署常见错误或问题 问题一: [--06T16::,][WARN ][o.e.b.JNANatives ] unable to install syscal ...

  3. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  4. Python程序员的10个常见错误(转)

    add by zhj:虽然学Python也有两年了,但这些问题的确容易犯,看来对Python的理解还有些地方不深入.先转了,有时间再好好看 译文:http://blog.jobbole.com/682 ...

  5. Python程序员的10个常见错误

    关于Python Python是一门解释性的,面向对象的,并具有动态语义的高级编程语言.它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Applicatio ...

  6. Docker在centos下安装以及常见错误解决

    系列目录 Docker安装(使用阿里云镜像) Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收 ...

  7. python安装Django常见错误

    今天没事安装了一下python的web框架,Django.自己踩了一些雷,记录下来,留给后面的学者们,不要踩同样的雷了. 1.pip版本过低,安装不了,升级pip指令 python -m pip in ...

  8. Centos 7.2 安装 Python 3.5(适用于Python 3所有版本安装)

    提示:我们必须不能破坏系统的环境.因为几个关键的应用程序依赖于Python 2.7.5(centos 7默认版本).如果替换了系统的Python环境就会发生很多难以预见的错误,甚至要重装系统. 安装前 ...

  9. Lnmp 源码编译安装、常见错误整理

    简介: Lnmp 环境的搭建还是非常简单的,之前由于博客迁移等原因,导致丢失了好多博文,这次重新整理记录一下. Lnmp 即:Linux .Nginx .Mysql .PHP Lnmp 是一套 Web ...

随机推荐

  1. 使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)

    以订单为例(订单详情包括了订单的基本信息,配送物流信息,商品信息),直接上代码: 1.多重属性查询 java实体 public class OrderDetail { @XmlElement(requ ...

  2. STL_算法_填充新值(fill、fill_n、generate、generate_n)

    C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) 全部容器适用 fill(b,e,v)             //[b,e)   填充成v fill_n(b,n,v)     ...

  3. Python入门 来点栗子

    查天气(1) http://wthrcdn.etouch.cn/weather_mini?citykey=101280804 http://wthrcdn.etouch.cn/WeatherApi?c ...

  4. Newtonsoft.Json 序列化日期问题解决

    上代码 其中的使用方法和UserInfo实体对象就不贴代码了. /// <summary> /// 把对象转成json字符串 /// </summary> /// <pa ...

  5. [Swift]LeetCode1066. 校园自行车分配 II | Campus Bikes II

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. 机器学习——Day 1 数据预处理

    写在开头 由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客. 学习教程来源于github的Avik-Jain的100-Days-Of-MLCode 英文版:https:// ...

  7. 数据通讯与网络 第五版第24章 传输层协议-UDP协议部分要点

    24.1 介绍 本章节主要集中于传输层协议的解读,图24.1展示TCP.UDP.SCTP在TCP\IP协议栈的位置 24.1.1 服务(Service) 每个协议都提供不同的服务,所以应该合理正确的使 ...

  8. 【原创分析帖】据说Google内部有史以来最难的一道面试题

    逛技术平台的时候,刷到一道算法题,一眼看去,就被其开头吸引了: 摘自知乎某 Google 分布式大神的一道题,技术是Google内部出的有史以来最难的一道题 嗯,距离下班还有一段时间,就看看把. 题目 ...

  9. hdu 4297

    有两个基础需要掌握: RMQ,以及LCA. RMQ:dp[i][j]表示下标从i开始,长度为2^j的一段元素中的最值.则易得状态转移如下:dp[i][j]=max/min(dp[i][j-1],dp[ ...

  10. Maven项目pom.xml配置详解

    maven项目pom.xml文件配置详解,需要时可以用作参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...