Linux安装Python各个版本,这一篇就够了

文章目录

  • 前言
  • 一、Linux安装Python
  • 1、安装依赖包
  • 2、下载Python安装包
  • 1、选择正确的安装包
  • 2、下载自己需要的安装包
  • 3、解压
  • 4、安装
  • 5、建立软连接
  • 1)软连接命令
  • 2)软命令说明
  • ① 确定python和pip的运行位置
  • ② 设置软连接
  • 6、运行python,查看是否可用
  • 二、Python运行的其他问题
  • 1、“ModuleNotFoundError: No module named '_bz2'”
  • 三、参考文章
  • 前言

    网上在Linux上安装Python的方法不少,但是大多都比较麻烦,需要很多步骤,看着就头皮发麻。并且很多文章都说了怎么一步步的安装,但原理什么的,讲的比较少,这对于初学者来说,就会在出现问题时,无法解决。
    下面的方法,是本人认为比较简单,并且能更好去理解Python原理,更好操作,不容易出错的方法。

    一、Linux安装Python

    1、安装依赖包

    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
    

    上面的命令直接复制,运行就行了

    2、下载Python安装包

    1、选择正确的安装包

    1)Python的安装包网址为:https://www.python.org/ftp/python/3.8.0/
    对于这个网址,我们拆解一下:

  • https://www.python.org/ftp/python/ 是各版本路径,访问后的截图为:

    可以看到这是Python各版本安装包的集合
  • 3.8.0/:Python的版本
  • 所以当我们需要安装什么版本的安装包,直接去路径中,下载即可
    好比,下载3.9.7的版本:则路径为:https://www.python.org/ftp/python/3.9.7/

    2、下载自己需要的安装包

    例如:https://www.python.org/ftp/python/3.9.7/的网页为:

    我们下载 .tgz 文件即可「Windows则安装exe程序,mac安装pkg」,下载命令为:

    wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
    

    3、解压

    tar -zxvf Python-3.9.7.tgz
    

    解压后,如下图:

    4、安装

    cd Python-3.9.7
    ./configure --prefix=/usr/local/python3
    make && make install
    

    上面的命令一行行的来,先到安装包目录,然后安装, 等待安装运行结束

    5、建立软连接

    1)软连接命令

    ln -s /usr/local/python3/bin/python3.9 /usr/bin/python
    ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip
    

    2)软命令说明

    注意:这个地方是重点,一个是连接python运行位置,另一个则连接着pip的运行位置
    通俗的说,这个软连接的作用,就是告诉系统,python和pip在哪呢!

    我个人比较习惯使用python、pip,不习惯使用python3、pip3,所以我软连接设置的为 /usr/bin/python/usr/bin/pip

    命令中的 /usr/bin/python/usr/bin/pip 是大部分机器的位置,那怎么确定你的机器的具体位置是哪呢?「确定python和pip的方法一样,以python为例」

    ① 确定python和pip的运行位置

    where python
    where pip
    


    cd 到查询出的命令路径下,查看对应的python和pip的软连接状态:

    where python
    cd 路径
    # 查看python的具体软连接信息,注意加上 *
    la python*  
    

    如下图:

    如果您软连接指向的路径不是python3.9的,则进行②步骤

    ② 设置软连接

    首先cd到where命令查出的路径,然后删除当前的软连接,重新设置,操作步骤如下图:

    如果where命令执行之后,出现多个路径,那就去尝试每个路径,直至确定哪个路径才是真正的发挥作用

    上面的方法,可用于切换Python版本,我们可以让Linux上拥有多个Python版本,需要用到哪个版本,我们就软连接到哪个版本

    本机的Python版本均在 /usr/local/python3/bin 路径下:

    当我们需要新的版本时,重复1到4步骤,即会在 /usr/local/python3/bin 目录下创建新的版本文件,而我们不用的版本也不需删除,只需切换软连接即可,这就是Python版本切换的精髓,而在Windows上则是通过设置环境变量来进行实现。

    6、运行python,查看是否可用


    如果出现上面的图面,说明你安装成功了,恭喜你。

    二、Python运行的其他问题

    1、“ModuleNotFoundError: No module named ‘_bz2’”

    Traceback (most recent call last):
      File "stat_model.py", line 1, in <module>
        from torchstat import stat
      File "/usr/local/lib/python3.7/site-packages/torchstat/__init__.py", line 11, in <module>
        from torchstat.reporter import report_format
      File "/usr/local/lib/python3.7/site-packages/torchstat/reporter.py", line 1, in <module>
        import pandas as pd
      File "/usr/local/lib/python3.7/site-packages/pandas/__init__.py", line 55, in <module>
        from pandas.core.api import (
      File "/usr/local/lib/python3.7/site-packages/pandas/core/api.py", line 24, in <module>
        from pandas.core.groupby import Grouper, NamedAgg
      File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/__init__.py", line 1, in <module>
        from pandas.core.groupby.generic import (  # noqa: F401
      File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 44, in <module>
        from pandas.core.frame import DataFrame
      File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 88, in <module>
        from pandas.core.generic import NDFrame, _shared_docs
      File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 70, in <module>
        from pandas.io.formats.format import DataFrameFormatter, format_percentiles
      File "/usr/local/lib/python3.7/site-packages/pandas/io/formats/format.py", line 48, in <module>
        from pandas.io.common import _expand_user, _stringify_path
      File "/usr/local/lib/python3.7/site-packages/pandas/io/common.py", line 3, in <module>
        import bz2
      File "/usr/local/lib/python3.7/bz2.py", line 19, in <module>
        from _bz2 import BZ2Compressor, BZ2Decompressor
    ModuleNotFoundError: No module named '_bz2'
    

    问题原因:
    bz2这个库找不到了,看其他博客说是安装Python时bz库,即“_bz2.cpython-36m-x86_64-linux-gnu.so” 安装错了位置
    解决方法:
    1、查找 _bz2.cpython 文件

    sudo find / -name "_bz2.cpython-*"
    

    2、切换到python版本对应路径,将该文件复制到该目录下:

    cd /usr/local/python3/lib/python3.9/lib-dynload
    
    sudo cp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so ./
    

    3、修改文件名称,将"-36m"修改为"-39"即可「和同目录的其他文件命名保持统一」:

    sudo mv ./_bz2.cpython-36m-x86_64-linux-gnu.so ./_bz2.cpython-39-x86_64-linux-gnu.so
    

    运行如下图:

    三、参考文章

    linux-python3.8安装
    ModuleNotFoundError: No module named ‘_bz2‘问题解决

    欢迎大家在评论区留言,知无不言,言无不尽。感觉不错的话,别忘了点赞收藏哦!

    来源:信橙则灵

    物联沃分享整理
    物联沃-IOTWORD物联网 » Linux安装Python各个版本,这一篇就够了

    发表评论