zoukankan      html  css  js  c++  java
  • mint install python3 from source

    20200702  

    大版本没区别时,不要自己编译安装!

    ubuntu20.04 自带 只有3.8.2 没有2.7了.  而3.9要10月才出.所以,这时候,就别自己编译python3.8.3 了. 一不留神,就各种问题,比如文件管理器打不开...只能重装

    基于Ubuntu 18.04  自带了3.6,可惜 3.7秒出. 后面还有3.8

    一个原则是: 

    自带的3.6不要动

    防止用apt install python3-XXX时版本不对. 

    理由: 自带的2.7和3.6都是让操作系统自己用的;

    python是linux系发行版的一部分, 在linux发行版中的地位不低于windows里Windows/文件夹下的系统工具.正因为这样,才不要随便折腾每个发行版自带的py版本.

    相反,python不是windows的一部分,正因为不是,所以在windows下才可以随便安装卸载升级py都没问题.

    而自己跑程序用的最新版python解释器,是为了:

    用pipenv建立简单运行环境,结合sublime text3 ctrl+B 运行简单程序.

    这样,简单的小程序就不需要用docker python镜像+pycharm这么重型的工具了.

    3.6归操作系统, 3.8+为我自用

    重在隔离.

    1 安装准备

    编译python源码时,可能会报错, 

    ModuleNotFoundError: No module named '_ctypes'

    参考https://blog.csdn.net/sinat_36184075/article/details/80155392

    1.1 安装

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

    参考https://tecadmin.net/install-python-3-7-on-ubuntu-linuxmint/

    sudo apt-get install -y build-essential checkinstall
    sudo apt-get install -y libreadline-gplv2-dev libncursesw5-dev libssl-dev 
        libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

    1.2 编译openssl

    因为之前编译python3.8之后遇到了 import ssl 报错  或者使用pika的时候

    ModuleNotFoundError: No module named '_ssl'

    说明编译python时,  openssl 没有配置对

    为了保险,还是建议自己先编译一下openssl

    https://www.cnblogs.com/xuanmanstein/p/11547505.html

    2下载编译安装

    2.1下载

    注意小版本号可能升级(注意浏览py官网新版本源码发布地址:https://www.python.org/downloads/source/

    cd /usr/src
    sudo wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz --no-check-certificate
    sudo tar xzf Python-3.8.3.tgz

    2.2 编译/安装 

    删除 pip  virtualenvs 缓存

    rm -rf ~/.cache/pip
    rm -rf ~/.local/share/virtualenvs

    编译安装

    cd /usr/src/Python-3.8.3
    sudo ./configure --enable-shared --enable-optimizations --with-openssl=/usr/src/openssl-1.1.1d
    sudo make
    sudo make altinstall
    sudo ldconfig /usr/local/lib

    注意带上 --enable-shared, 因为编译geos等库时可能需要, ubuntu自带的3.6也是带的

    altinstall 保证没有替换系统自带的python3版本

    必须有 ldconfig 这句,不然启动时会报错

    python3.8: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory

    python3.8

    可以启动. 表示编译成功


    再检查一下pip3.8是不是正确,防止指向系统自带的3.6

    更新一下pip

     sudo pip3.8 install --upgrade pip

      

    pip3 可能不再指向3.6了

    如果不对,就修正一下

    https://www.cnblogs.com/xuanmanstein/p/11505668.html

  • 相关阅读:
    【BZOJ 2844】: albus就是要第一个出场
    BZOJ 2631: tree
    BZOJ1798: [Ahoi2009]Seq 维护序列seq
    Link-Cut Tree指针模板
    bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)
    【BZOJ 3561】 DZY Loves Math VI
    linux 安装php7.2 以及配置laravel环境(public目录下)
    composer 配置 切换中国镜像
    phpstorm composer 提示php 版本过低的问题调整
    如何在阿里云的虚机 部署laravel项目
  • 原文地址:https://www.cnblogs.com/xuanmanstein/p/10087010.html
Copyright © 2011-2022 走看看