python 3.10.0源码编译安装

文章目录

  • python 3.10.0源码编译安装
    • 1. 安装编译依赖工具
    • 2. 下载python 3.10.0
    • 3. 编译安装 Python
    • 4. 体验

1. 安装编译依赖工具

 yum -y install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++ libffi-devel

2. 下载python 3.10.0

最新版本下:https://www.python.org/downloads/

 curl -O https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
#crul -O url 下载文件(使用文件本来的名字)。
#curl -o new_name url 下载文件(将文件重新命名为 new_name)
或者
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz#解压
tar zxf Python-3.10.0.tgz
  • -z:使用 gzip 压缩或解压缩;
  • -x:解包;
  • -f:指定文件。
  • 使用 gzip -l Python-3.10.0.tgz 可以查看压缩率。

3. 编译安装 Python

cd Python-3.10.0
./configure --enable-optimizations --with-ssl --prefix=/usr/local/python-3.10.0
  • --enable-optimizations 用于优化编译;
  • --prefix=/usr/local/python-3.10.0 用于以结构化的方式,将 Python 安装到 /usr/local/python-3.10.0
  • 二进制文件在 /usr/local/python-3.10.0/bin
  • 头文件在 /usr/local/python-3.10.0/include
  • 库文件在 /usr/local/python-3.10.0/lib
  • 其它的资源文件在 /usr/local/python-3.10.0/share,如帮助文档。

如果不配置 --prefix,安装文件将分散在多个位置:

  • 二进制文件默认在 /usr/local/bin
  • 头文件在 /usr/local/include
  • 库文件默认在 /usr/local/lib
  • 其它的文件在 /usr/local/share

编译成二进制:

make

漫长的编译过程~~~

编译时可能会出现很多警告,例如,centOS 最小化安装时没有安装图形化界面,因此编译 Python 中的 tkinter 模块时可能会出现警告。

如果编译失败,可以尝试重新编译,很多时候再编译一次就能成功。你既可以执行 make clean,清除之前的编译文件后再次 make, 也可以全部删除,然后从头再解压、configure、make 一次。

#检查编译结果
make test#安装软件
make altinstall

设置全局环境变量 PATH,并为 Python 设置一个别名 py。在目录 /etc/profile.d/ 下新建一个文件,此处命名为 python.sh,在文件中写入:

export PATH=/usr/local/python-3.10.0/bin:$PATH
alias py='/usr/local/python-3.10.0/bin/python3.10'

使配置文件立即生效:

source /etc/profile.d/python.sh

除了设置环境变量 PATH,另一种方法是在已有的 PATH 目录下(如 /usr/bin、/usr/sbin)建立 Python 和 pip 的软链接:

ln -s /usr/local/python-3.10.0/bin/python3.10 /usr/bin/python3.10
ln -s /usr/local/python-3.10.0/bin/pip3.10 /usr/bin/pip3.10

添加帮助文档。在 /etc/man_db.conf 中添加一条 MANPATH:

MANDATORY_MANPATH                       /usr/local/python-3.10.0/share/man

添加之后的 man_db.conf 文件,应该如下所示:

MANDATORY_MANPATH                       /usr/man
MANDATORY_MANPATH                       /usr/share/man
MANDATORY_MANPATH                       /usr/local/share/man
MANDATORY_MANPATH                       /usr/local/python-3.10.0/share/man

4. 体验

在命令行输入 py、python3.10、pip3.10 等命令,检查是否可用

$  pip3
pip3     pip3.10
$ python3
python3            python3.10         python3.10-config  python3-config

python 3.10.0源码编译安装相关推荐

  1. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  2. tesseract-4.0.0源码编译安装

    tesseract-4.0.0源码编译安装 安装开发工具 apt-get -y install gcc g++ make cmake autoconf automake libtool pkg-con ...

  3. postgresql 12.0 源码编译安装

    postgresql 12.0 源码编译安装 1.安装相关软件包 su - root yum install -y cmake gcc gcc-c++ perl readline readline-d ...

  4. PHP 8.0 源码编译安装 JIT 尝鲜

    女主宣言 今天小编为大家分享一篇最简化的 PHP 8 源码编译安装方法.PHP 8.0 Alpha 1 已经在2020年6月25号发布了,今天带领大家快速尝鲜 PHP 8.0 的新特性 JIT.希望能 ...

  5. freebsd php 编译 mysql sql2005_[伊达原创]FreeBSD8.0源码编译安装MYSQL5 APACHE2.2 PHP5.3.2

    /********************************************** @desc:FreeBSD8.0+APACHE-2.2.15+MYSQL-5.1.45+PHP-5.3. ...

  6. tensorflow源码编译教程_源码编译安装tensorflow 1.8

    参考官方指南 基本要求 官网测试过的源代码配置如下: image 也就是说,按照这个版本安装的话不应该再产生版本的问题了. 我的配置 ubuntu 16 python 2.7 nccl 2.3 gcc ...

  7. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  8. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0

    为什么要源码编译安装VIM? 因为我要安装ycm,但是ubuntu14.04仓库vim版本低 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 ...

  9. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

最新文章

  1. 收藏 | 卷积神经网络中用1*1 卷积有什么作用或者好处呢?
  2. 都说AIOps是必然趋势,那实践AIOps之前需要做些什么准备?\n
  3. WPF内存泄露:CollectionViewSource.GetDefaultView导致Cache对象
  4. 坐标变换过程(vertex transformation)
  5. 微软宣布新命令行工具 Windows Terminal 和 WSL2
  6. lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...
  7. nyoj 题目5 Binary String Matching
  8. 通过端口映射突破防火墙
  9. 小学五年级计算机进度安排,苏教版小学五年级信息技术教学计划及进度安排.DOC...
  10. 转:SQL:外连接on条件与where条件的区别
  11. [06]项目实战-移动端流体布局
  12. dnf 服务器每周维护,DNF:7.22官方公告出炉,凌晨2点维护7小时,新增3个活动有玄机?...
  13. 上传文件计算机传输的,电脑文件怎么传输到iPad
  14. jedis pool的问题
  15. Result的类型分析和总结
  16. 游戏开发之Unity2021熟悉基本工具
  17. Python Matplotlib绘制柱状图(bar和barh函数)详解
  18. mybatis 自定义拦截器
  19. Flink实战之实时风控规则引擎
  20. soc均衡,soc均衡控制,储能,蓄电池充放电控制,蓄电池储 能

热门文章

  1. 领歌敏捷协作——一直没有收到邮件的解决办法
  2. 创建Texture(纹理)
  3. 我用python写了一个简单的企业管理系统
  4. vue中axios请求拦截、响应拦截的配置
  5. 深度学习使用GPU问题
  6. MYSQL中一个特殊的MDL LOCK死锁案列
  7. python 归一化还原_python中归一化
  8. 文献阅读技巧和学术道德规范
  9. 手把手带你学会猜数字游戏代码编写
  10. 代码随想录算法训练营第四十二天-动态规划4|● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集