Linux安装python3

安装环境:CentOS 7

yum安装python3.4

  一般情况下在linux中使用python是很轻松的,因为本身linux自带python环境,CentOS7目前自带python2.7。但是据说python2.7只支持到2020年,从学习上来讲还是应该先习惯下python3版本以上的使用方法。学习之前先要配置环境所以先要安装python3的环境。最简单的安装方法是直接通过yum安装:

1
2
# yum search python //先查下yum源支持的python安装版本
# yum install python34 //我的yum源最高支持到python3.4

  yum会直接按默认方式安装到系统里,默认安装到/usr/bin/下。不过安装后执行python时显示版本还是2.7,这是因为为了多版本兼用/usr/bin/python一般是链接文件,链接到所用版本的文件,如原版执行文件是/usr/bin/python2.7,通过python链接到python2.7,这样同时存在高低版本也不会产生文件冲突的问题。而yum安装时是不会改变它的链接目标的,因此直接调用python是相当于还是调用python2.7。因此需要手动更改为链接python3.4:

1
2
3
# cd /usr/bin/
# rm python
# ln -s python3.4 python

  这样在执行python时,版本显示就是3.4了。

 源码安装python3.6.2

  然而作为作死小能手,不装最新版本怎么能行,通常最新版本很少有yum可以安装的,除非版本停滞了相当长的时间。所以安装就需要使用源码来安装。

  到python官网下载https://www.python.org

1
2
3
4
5
6
7
# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel //安装可能的依赖库
# tar -zxvf Python-3.6.2.tgz
# cd Python-3.6.2/
# ./configure --prefix=/usr/local/ //安装到/usr/local目录
# make
# make altinstall //此处不能用install安装,因为install不区分版本,会出现多版本混乱的问题
  python3.6程序的执行文件:/usr/local/bin/python3.6
  python3.6应用程序目录:/usr/local/lib/python3.6
  pip3的执行文件:/usr/local/bin/pip3.6
  pyenv3的执行文件:/usr/local/bin/pyenv-3.6
  更改python默认链接
1
2
3
4
# cd/usr/bin
# mv  python python.backup
# ln -s /usr/local/bin/python3.6 /usr/bin/python
# ln -s /usr/local/bin/python3.6 /usr/bin/python3

 高版本yum依赖问题

  安装高版本python后会有一个非常蛋疼的问题,yum是依赖于python的,安装python3后yum就没办法直接用了,需要直接指定修改yum中python脚本的解释器才能使用。

  修改/usr/bin/yum和/usr/bin/urlgrabber-ext-down两个文件的头文件,即将第一行#!/usr/bin/python 改为 #!/usr/bin/python2

posted @   TREES树海  阅读(30054)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示