Linux环境下安装python

news2024/9/27 20:30:12

Linux 环境下安装python

  • 以下是在Linux环境下安装Python - 3.9.4.tgz的详细步骤:
    • 1. 下载Python - 3.9.4.tgz(如果未下载)
    • 2.解压文件
    • 3.安装依赖项(如果需要)
    • 4.配置和编译
    • 5.安装
    • 6.创建一个别名(alias),使得在当前 shell 会话中输入 ​python​ 命令时,实际上会执行
    • 7.设置环境变量(可选)

以下是在Linux环境下安装Python - 3.9.4.tgz的详细步骤:

1. 下载Python - 3.9.4.tgz(如果未下载)

  • 如果您还没有下载该文件,可以使用wget命令(假设官方下载链接为https://www.python.org/ftp/python/3.9.4/Python - 3.9.4.tgz):
#进入软件包下载目录
cd cd /usr/local/
ls
mkdir /usr/local/python
cd /usr/local/python 
wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz
ll

在这里插入图片描述

2.解压文件

  • 使用tar命令解压下载的.tgz文件:
tar -xvf Python-3.9.4.tgz
  • 这将创建一个名为Python - 3.9.4的目录,其中包含Python的源代码。
    在这里插入图片描述

3.安装依赖项(如果需要)

  • Debian/Ubuntu系统

    • 执行以下命令安装编译Python所需的依赖项:
    sudo apt - get update
    sudo apt - get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
    
  • Red Hat/CentOS系统

    • 首先更新系统:
    sudo yum   -y update
    

    在这里插入图片描述
    在这里插入图片描述

    • 然后安装依赖项:
    sudo yum  -y groupinstall "Development Tools"
    sudo yum  -y install  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
    

在这里插入图片描述
在这里插入图片描述

wget -qO /etc/yum.repos.d/CentOS-Base.repo http://mirrors.myhuaweicloud.com/repo/CentOS-Base-8.repo
  • 清理yum缓存并重新生成
yum clean all
yum clean metadata
yum makecache

在这里插入图片描述

4.配置和编译

  • 进入解压后的Python - 3.9.4目录:
cd  /usr/local/python/Python-3.9.4
  • 运行配置脚本,例如指定安装目录为/usr/local/python3.9(可根据需求修改):
./configure --prefix=/usr/local/python3.9

在这里插入图片描述

  • 编译源代码:
make
  • 编译过程可能需要一些时间,具体取决于系统性能。
    在这里插入图片描述

  • 异常如下
    在这里插入图片描述
    1). 问题分析

  • 在构建Python 3.9.4的过程中,当构建_ctypes扩展模块时出现了错误。错误信息显示/usr/local/python/Python - 3.9.4/Modules/_ctypes/_ctypes.c:107:10: fatal error: ffi.h: No such file or directory,这意味着构建_ctypes模块需要的ffi.h头文件缺失。_ctypes模块用于在Python中调用C函数库,而ffi.h通常是libffi库的一部分,这个库提供了一种在运行时调用C函数的机制。

  • 由于ffi.h缺失,导致gcc编译器无法编译_ctypes.c文件,从而_ctypes模块构建失败。虽然Python整体构建显示“finished successfully”,但实际上一些可选模块(如_ctypes)由于缺少必要的组件而未能正确构建。
    2). 解决方案

  • 安装libffi - dev(对于基于Debian/Ubuntu系统)或libffi - devel(对于基于Red Hat/CentOS系统)包

    • 如果是基于Debian或Ubuntu系统:
      • 使用以下命令安装libffi - dev包:
      sudo apt - get install libffi-devel
      
    • 如果是基于Red Hat或CentOS系统:
      • 使用以下命令安装libffi - devel包:
      sudo yum install libffi-devel
      
      在这里插入图片描述
  • 重新构建Python

    • 在安装了相应的libffi开发包之后,需要重新运行make命令来重新构建Python。这将确保_ctypes模块能够找到ffi.h头文件并正确构建。例如:
    cd /usr/local/python/Python - 3.9.4
    make clean
    make
    
    • 这里的make clean命令是为了清除之前构建过程中产生的中间文件,以确保重新构建时不会受到之前失败构建的影响。

5.安装

  • 执行安装命令: 编译源代码无异常前提
sudo make install

6.创建一个别名(alias),使得在当前 shell 会话中输入 ​python​ 命令时,实际上会执行

echo "alias python='/usr/local/python3.9/bin/python3.9'" >> /etc/profile

在这里插入图片描述

7.设置环境变量(可选)

  • 如果希望在任何目录下都能直接使用新安装的Python版本,可以将其添加到PATH环境变量中。
    在这里插入图片描述

  • 对于bash用户,编辑~/.bashrc文件:

nano ~/.bashrc
  • 在文件末尾添加以下行(假设按照前面的--prefix安装):
export PATH="/usr/local/python3.9/bin:$PATH"
  • 保存并退出文件(在nano中按Ctrl+X,然后按Y确认保存)。
  • 使环境变量生效:
source ~/.bashrc

现在您已经在Linux环境下成功安装了Python 3.9.4。您可以在终端中输入python3.9来启动新安装的Python解释器进行测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国车主,撑起天猫又一个万亿赛道

"今年双十一,预计会有超过1亿消费者来淘宝天猫汽车类目消费。3~5年之后,天猫汽车有望冲刺为阿里继大服饰、大快消、家装家电等之后又一个GMV(商品成交总额)破万亿的品类。" 淘天集团汽车事业部总经理、天猫养车总裁无封…

UART配置流程

S3C2440A 的通用异步收发器(UART)配有3 个独立异步串行I/O(SIO)端口,每个都可以是基于中断或基于DMA 模式的操作。换句话说,UART 可以通过产生中断或DMA 请求来进行CPU 和UART 之间的数据传输。UART 通过使…

网络安全 DVWA通关指南 DVWA Weak Session IDs(弱会话)

DVWA Weak Session IDs(弱会话) 文章目录 DVWA Weak Session IDs(弱会话)Low LevelMedium LevelHigh LevelImpossible Level 参考文献 WEB 安全靶场通关指南 相关阅读 Brute Force (爆破) Command Injection(命令注入…

Kafka学习笔记(一)Kafka基准测试、幂等性和事务、Java编程操作Kafka

文章目录 前言4 Kafka基准测试4.1 基于1个分区1个副本的基准测试4.2 基于3个分区1个副本的基准测试4.3 基于1个分区3个副本的基准测试5 Java编程操作Kafka5.1 引入依赖5.2 向Kafka发送消息5.3 从Kafka消费消息5.4 异步使用带有回调函数的生产消息6 幂等性6.1 幂等性介绍6.2 Kaf…

【linux】linux中如何通过Logstash处理、结合logrotate分割日志

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

盘点:App 移动自动化测试工具

App移动端测试工具非常多,首先 区分 Android 和 iOS,以及 harmonyos 平台,每个平台下都有自己的自动化测试工具。自动化工具又区分 调试工具、monkey 工具、UI自动化工具。 本文就来盘点以下,当下主流的app自动化测试工具。 Andr…

文档信息提取系统源码分享

文档信息提取检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

客户服务升级指南:如何以细节赢得客户忠诚

在当今这个竞争激烈的市场环境中,客户忠诚度已成为企业生存与发展的关键所在。而要想赢得并维持客户的忠诚,仅凭优质的产品或服务已远远不够,更需要企业在客户服务上下足功夫,从每一个细节入手,打造超越客户期待的服务…

C++简单缓冲区类设计

目录 1.引言 2.静态缓冲区 3.动态缓冲区 4.数据引用类 5.自动数据引用类 6.几种缓冲区的类关系图 7.注意事项 8.完整代码 1.引言 在C中,设计静态和动态缓冲区类时,需要考虑的主要差异在于内存管理的方式。静态缓冲区类通常使用固定大小的内存区域…

【机器学习案列】基于随机森林和xgboost的二手车价格回归预测

一、项目分析 1.1 项目任务 kaggle二手车价格回归预测项目,目的根据各种属性预测二手车的价格。 1.2 评估准则 评估的标准是均方根误差: 1.3 数据介绍 数据连接https://www.kaggle.com/competitions/playground-series-s4e9/data?selecttrain.csv 其…

基于 Java Swing 实现的超级玛丽游戏

一、项目概述 > 这是一个基于 Java Swing 的游戏项目,旨在实现一个支持自定义地图的超级玛丽游戏。 > 游戏画面精美,包含多种功能和亮点,如地图编辑器、不同状态的马里奥、多种怪物和道具等。 二、项目演示 > 地图编辑器 > …

Mac写入U盘文件如何跨平台使用 Mac电脑怎么把U盘文件传送到电脑 mac怎么用u盘拷贝文件

不知道你在使用Mac电脑拷贝文件的时候有没有遇到过无法写入U盘的问题,这通常是由于Mac和Windows之间的兼容问题引起的。下面我将为大家详细介绍Mac写入U盘文件如何跨平台使用以及Mac如何将U盘文件复制到电脑。 一、Mac写入U盘文件如何跨平台使用 在Mac电脑上将文件…

MySQL第11讲--多表查询的介绍

文章目录 前言多表关系多表查询概述多表查询的分类连接查询内链接外链接自连接 联合查询子查询标量子查询列子查询行子查询表子查询 前言 在MySQL第10讲–约束的介绍中讲了数据库的几种约束条件:非空约束、唯一约束、主键约束、外键约束、检查约束、默认约束。下图对…

数字人实战第六天——DH_live 训练自己的数字人

一、简介 数字人是一种基于人工智能和数字化技术构建的虚拟人物或代理,能够进行人类式的交互和沟通。这些技术主要包括: 人工智能(AI):AI 是数字人的核心,包括自然语言处理(NLP)、机…

[深度学习]循环神经网络

1 自然语言处理概述 语料:一个样本,句子/文章语料库:由语料组成词表:分词之后的词语去重保存成为词表2 词嵌入层 import jieba import torch.nn as nn import torch # 文本数据 text=北京东奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途。 # 分词 words=j…

11.梯度下降法的思想——举足轻重的模型优化算法

引言 优化算法在机器学习和人工智能中扮演者至关重要的角色。机器学习模型的训练过程本质上是一个优化问题,即通过调整模型参数来最小化损失函数。梯度下降法(Gradient Descent)在优化算法中占据着重要的地位,因其简单、有效且易于实现。 通过阅读本篇…

阿里云服务器挖矿木马清除

这里写自定义目录标题 阿里云服务器挖矿木马清除清除步骤: 阿里云服务器挖矿木马清除 直接看图: 清除步骤: 是的,根据您提供的 systemctl 输出,c3pool_miner.service 看起来非常可疑,因为它的描述是 “…

langchain v0.3更新了什么?

版本改动 这是具体改动的链接 官方blog首先说明了: 所有软件包已在内部从 Pydantic 1 升级到 Pydantic 2。 所有软件包都完全支持在用户代码中使用 Pydantic 2,而无需使用 langchain_core.pydantic_v1 或 pydantic.v1 等桥接程序。 由于 Pydantic 1 已…

Django 配置邮箱服务,实现发送信息到指定邮箱

一、这里以qq邮箱为例,打开qq邮箱的SMTP服务 二、django项目目录设置setting.py 文件 setting.py 添加如下内容: # 发送邮件相关配置 EMAIL_BACKEND django.core.mail.backends.smtp.EmailBackend EMAIL_USE_TLS True EMAIL_HOST smtp.qq.com EMAIL…

18724 二叉树的遍历运算

### 思路 1. **递归构建树**: - 先序遍历的第一个节点是根节点。 - 在中序遍历中找到根节点的位置,左边部分是左子树,右边部分是右子树。 - 递归构建左子树和右子树。 2. **递归生成后序遍历**: - 递归生成左子树的…