Ubuntu Python 完整安装演示及 CMake 安装流程(适用于 ARM Linux 设备)- Ubuntu 16.04 Python 3.7.1

文章目录

  • 零、前言
  • 一、准备工作(重要)
  • 1.下载并安装cmake
  • 1.0准备
  • 1.1预编译包安装
  • 1.2源码编译安装
  • 1.3配置环境变量
  • 2.下载必要的依赖
  • 二、获取Python源码包
  • 三、Python编译安装
  • 四、Python链接并验证
  • 五、Python配置环境变量
  • 零、前言

    为什么需要使用源码编译安装?

    使用apt-get下载验证python3安装时,(sudo apt-get install python3) 你可能会看到python3 is already the newest version (3.5.1-3)。即你提供的仓库中不存在更高版本或者通过apt-get暂时只能安装这么高的版本。
    如果你没看到这个提示,那么就可能单纯是你的仓库中没有这个版本的python,可以如下操作:

    apt-get install -y software-properties-common
    
    add-apt-repository ppa:deadsnakes/ppa
    或者add-apt-repository ppa:jonathonf/python-3.7
    
    apt-get update
    
    apt-get install python3.7
    

    或者尝试添加软件源:
    vi /etc/apt/sources.list

    # 阿里云的软件源
    deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
    #ubuntu 有科学上网可以加上,否则太慢,没用
    # deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
    # deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
    # deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
    # deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
    # deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb http://ppa.launchpad.net/q-quark/equalx/ubuntu xenial main
    
    

    更新下载源
    sudo apt-get update

    如果还是不行,就可以考虑从源码编译安装了。
    本教程使用Python3.7.1演示安装


    一、准备工作(重要)

    1.下载并安装cmake

    1.0准备

    linux用户需要进行时间同步

    #设置时区 依次输入 4 9 1
    tzselect
    sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    #手动设置系统时间
    sudo date -s MM/DD/YY
    sudo date -s hh:mm:ss 
    #自动设置,系统时间与网络时间同步
    sudo apt-get install ntpdate
    ntpdate cn.pool.ntp.org
    
    date -R #查看系统时间是否生效
    #同步系统时间到硬件时间
    hwclock --systohc
    hwclock --show #查看硬件时间是否生效,只看分钟和秒钟即可
    

    如果不做这步,可能会出现:
    The C++ compiler does not support C++11 (e.g. std::unique_ptr)
    这是因为 linux 操作系统下, 当cmake源码所在位置为挂载盘(mount), 且挂载盘位于不同的服务器, 此时如果出现挂载盘服务器与当前服务器时间不同步, 编译cmake源码则会报上述错误。

    1.1预编译包安装

    适用于非 arm32+linux 的用户
    https://cmake.org/download/

    选择自己平台的安装包,如果是仍然是linux,解压后跳转至1.3继续安装。win和mac平台可以直接选择软件安装,一般都可直接使用,直接跳过后续步骤直接测试 cmake --version

    1.2源码编译安装

    (一般用于arm32架构e.g.armv7l + linux系统)

    sudo apt update
    sudo apt install gcc
    sudo apt install g++
    sudo apt install ninja-build
    sudo apt install make
    sudo apt install libssl-dev
    sudo apt install wget
    cd ~
    wget https://www.cmake.org/files/v3.10/cmake-3.24.3.tar.gz
    tar -zxvf cmake-3.24.3.tar.gz # 或者从上面这个网站(https://www.cmake.org/files/v3.10/cmake-3.24.3.tar.gz)直接下载并放到~目录下
    cd cmake-3.24.3
    sudo mkdir /usr/local/cmake
    
    #检查文件是否齐全
    #法一
    	./bootstrap --prefix=/usr/local/cmake
    #法二
    	export CXXFLAGS="-O3"#有时不需要
    	./configure --prefix=/usr/local/cmake
    	
    make -j4 #主要看机器的内存和cpu核数。内存小,即使cpu有4个核也不要用-j4而是-j1
    sudo make install
    

    然后跳转至1.3继续安装


    1.3配置环境变量

    软链接的方法 sudo ln -s /usr/local/cmake/bin /usr/bin ,然后就可以直接使用了
    或者为cmake添加配置路径
    sudo vi ~/.bashrc
    在第一行添加
    export PATH=/usr/local/cmake/bin:$PATH
    关闭文件,source ~/.bashrc,当前用户即可一直使用这个配置路径

    验证cmake是否安装成功
    cmake --version

    到此cmake就安装完成了。

    2.下载必要的依赖

    更新下载源:

    sudo apt-get update

    下载:

    sudo apt-get install gcc g++ patchelf zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev lzma liblzma-dev libffi-dev libc6-dev
    如果 libffi-dev无法安装,可以按下列指令单独下载:

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
    sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
    sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
    sudo apt-get install libssl-dev openssl
    sudo apt-get install libffi-dev
    

    注意事项:
    一定要下载完了再进行下一步,否则你可能会在make编译时看到这些信息:
    ModuleNotFoundError: No module named '_ctypes'或其他module不在的报错,从而导致需要重新编译。


    二、获取Python源码包

    1.下载
    这里提供3.7.1的源码包:
    链接: https://pan.baidu.com/s/1640r2VRsH1rpmMzUW0Wb4w?pwd=hell
    如何想下载其他版本的,可以官网下载:
    https://www.python.org/ftp/python/
    下载完成后将tar包上传到需要安装的机器上。
    或者如果有科学上网也可以在命令行操作:

    apt-get install wget
    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 
    

    2.解压

    cd ~/
    
    如果为.tar.gz
    tar -xzvf Python-3.7.1.tgz 
    如果是.tar
    tar -zvf Python-3.7.1.tar
    

    三、Python编译安装

    #进入解压的目录
    cd ~/Python-3.7.1
    #创建安装目录
    sudo mkdir -p /usr/local/python3
    #编译并安装
    ./configure --prefix=/usr/local/python3  --enable-optimizations
    make -j4(低端cpu或内存小使用 -j1)
    sudo make install
    

    可以参考我结束:


    四、Python链接并验证

    建立新的指向python3.7的软链接(类似做了一个命令映射或快捷指令)

    #如果你还想保留python2则:
    sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
    使用时:pytho3 ...
    #否则添加python3的软链接也链接到python上,这样python3和python都是使用当前python版本的 
    sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python
    
    #如果你还想保留pip则:
    sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
    使用时:pip3 ...
    #否则可将pip3的软链接也链接到pip上,这样pip3和pip都是使用当前python版本的     
    sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip
    

    如果报错就:
    rm -rf /usr/bin/pythonrm -rf /usr/bin/python3
    rm -rf /usr/bin/piprm -rf /usr/bin/pip3
    e.g.
    ln: failed to create symbolic link '/usr/bin/pip': File exists
    则:rm -rf /usr/bin/pip


    验证


    五、Python配置环境变量

    vim ~/.bashrc

    export PYTHON_HOME=/usr/local/python3
    export PATH=$PYTHON_HOME/bin:$PATH
    export PYTHONPATH=/usr/local/python3/lib/python3.7/site-packages:$PYTHONPATH
    

    source ~/.bashrc

    到此python3.7.1就安装完了,本教程也适用于其他版本的安装

    物联沃分享整理
    物联沃-IOTWORD物联网 » Ubuntu Python 完整安装演示及 CMake 安装流程(适用于 ARM Linux 设备)- Ubuntu 16.04 Python 3.7.1

    发表评论