Python3.10 在 centos7 上构建

本贴最后更新于 489 天前,其中的信息可能已经水流花落

概述

在 centos7 上安装 py3.10, 用到 openssl 库

env

  • centos7.8
  • Python-3.10.7.tgz

01 下载 Python3.10.7

02 requirement

yum install -y gcc gcc-c++ make autoconf

yum insall -y zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel  libffi-devel


require openssl-1.1.1+, 需要自编译

03 install openssl

./config -fPIC --prefix=/usr/local/openssl
make -s -j4
make -s install -j4

注释:
--prefix:指定安装目录
-fPIC:编译openssl的静态库


04 building-py

tar zxf Python-3.10.7.tgz   && cd Python-3.10.7


//view configure help
./configure --help
...
  --with-system-ffi       build _ctypes module using an installed ffi library,
                          see Doc/library/ctypes.rst (default is
                          system-dependent)
...
  --with-openssl=DIR      root of the OpenSSL directory
  --with-openssl-rpath=[DIR|auto|no]
                          Set runtime library directory (rpath) for OpenSSL
                          libraries, no (default): don't set rpath, auto:
                          auto-detect rpath from --with-openssl and

//编译过程提示错误,因此需要安装openssl-1.1.1+
Failed to build these modules:
_hashlib              _ssl                                   

Could not build the ssl module!
Python requires a OpenSSL 1.1.1 or newer

//编译构建
./configure -q --prefix=/usr/local/python3.10.7 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto

make -s -j4  && make -s -j4 install

py3.10.7/lib/python3.10/site-packages  ## pip安装的包路径
py3.10.7/bin/xxx   //部分whl安装后可执行文件会在这里存在


05 env && yum

vim /etc/profile
export PATH=/usr/local/python3.10.7/bin:$PATH
source /etc/profile

//struct
bin
include
lib
share

bin/   #原生的Python,默认的Python还是Python 2.7.5

#调用Python
#!/usr/bin/env python3.10


error

//error
zipimport.ZipImportError: can't decompress data; zlib not available
cd Modules/zlib
./configure
make install  //缺少则编译
or
yum install -y zlib-devel

apt-get install zlib1g-dev   //ubuntu16.04

//ModuleNotFoundError: No module named '_ctypes'
01 install libffi-devel
02 enable openssl and version
03 again buiding py3.10


  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    545 引用 • 672 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...