zoukankan      html  css  js  c++  java
  • Linux下安装Python3.9

    centos安装python3.9.0
     
    1.先决条件:
    sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel
     
    2.下载:
    各版本地址:https://www.python.org/ftp/python
    wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz 
     
    3.解压:
    tar xzf Python-3.9.0.tgz 
     
    4.安装:
    cd Python-3.9.0 
    sudo ./configure --enable-optimizations 
    sudo make altinstall 
     
    5.创建虚拟环境(for flask project,仅安装python则忽略)
    virtualenv -p /usr/local/bin/python3.9 venv
    source ./venv/bin/activate
    pip install -r requirements.txt
     
     
     
    遇到的问题:
    1.yum源问题导致gcc安装失败
    (1)执行sudo ./configure --enable-optimizations报缺少C编译器
    configure: error: in `/opt/python39/Python-3.9.0':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
     
    尝试执行:yum install gcc 时报yum库libgomp版本冲突
    Error:  Multilib version problems found. This often means that the root
           cause is something else and multilib version checking is just
           pointing out that there is a problem. Eg.:
        ... ...
           Protected multilib versions: libgomp-4.8.5-4.el7.i686 != libgomp-4.8.5-36.el7_6.2.x86_64
    rpm -qa|grep libgomp: libgomp-4.8.5-36.el7_6.2.x86_64
     
    尝试执行yum install gcc --setopt=protected_multilib=false忽略protected multilib,依然报错
    Transaction check error:
      package libgomp-4.8.5-36.el7_6.2.x86_64 (which is newer than libgomp-4.8.5-4.el7.i686) is already installed
     
    目测是该yum源中libgomp版本还是不符合gcc依赖,只好尝试升级yum源到国内阿里源
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum clean all
    yum makecache
    vi /etc/yum.repos.d/CentOS-Base.repo  #将所有http改为https,注意备份该文件(vi替换命令 :1,$s/http/https/g)
    yum update
    yum install gcc
     
     
    2.升级gcc版本
    centos7使用yum install gcc后默认安装版本是gcc 4.8.5,版本比较低,升级gcc版本:
    sudo yum install centos-release-scl
    sudo yum install devtoolset-7
    scl enable devtoolset-7 bash
    gcc --version  # 升级后为7.3.1
     
     
    3.pip install -r requirements.txt报错,降低setuptools版本,新版本setuptools移除了Feature
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-wduw3u48/markupsafe/setup.py", line 6, in <module>
         from setuptools import setup, Extension, Feature
    ImportError: cannot import name 'Feature' from 'setuptools'
    这个通常会在安装 Flask 项目的依赖时发生,因为 MarkupSafe 是 Flask 的依赖之一
    原因是因为 Python 打包工具 setuptools 在 46.0.0 版本删掉了弃用的 Feature,
    更新 MarkupSafe 到最新版本
    pip install --upgrade pip setuptools==45.2.0
     
     
    4.启动项目报警告
    UserWarning: Could not import the lzma module. Your installed Python is incomplete. 
    Attempting to use lzma compression will result in a RuntimeError
    重新编译python:
    sudo yum install -y xz-devel
    sudo ./configure --enable-optimizations
    sudo make altinstall
     
     
    5.启动项目报警告
    RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, 
    the default buffer size will be used
    remember ... it is not a bug, it's a feature
    这个是gunicorn 19.x有可能报的问题,可以选择升级gunicorn解决:
    pip install gunicorn==20.0.4
     
     
     
    参考:
    https://tecadmin.net/install-python-3-9-on-centos/  (安装python39)
    https://developer.aliyun.com/article/704987  (配置阿里镜像)
    https://www.itcoder.tech/posts/how-to-install-gcc-compiler-on-centos-7/ (升级gcc)
    https://zhuanlan.zhihu.com/p/127820010  (MarkupSafe报错)
    https://stackoverflow.com/questions/57743230/userwarning-could-not-import-the-lzma-module-your-installed-python-is-incomple(lzma问题)
    https://askubuntu.com/questions/1216292/python3-runtimewarning-line-buffering-buffering-1-isnt-supported-in-binary-m (gunicorn line buffer问题)
  • 相关阅读:
    poj3669 广搜
    检索所有课程都选修的的学生的学号与姓名
    UVA10160 Servicing Stations
    uva11205 The broken pedometer 子集生成
    poj1101 the game 广搜
    poj3009 Curling 2.0 深搜
    poj 1564 Sum It Up 搜索
    HDU 2268 How To Use The Car (数学题)
    codeforces 467C George and Job(简单dp,看了题解抄一遍)
    HDU 2267 How Many People Can Survive(广搜,简单)
  • 原文地址:https://www.cnblogs.com/zhanqing/p/15309100.html
Copyright © 2011-2022 走看看