Linux环境下安装python

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 /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​ 命令时,实际上会执行

vim  /etc/profile
alias python='/usr/local/python3.9/bin/python3.9'
export PATH=/usr/local/python3.9/bin:$PATH
alias pip='/usr/local/python3.9/bin/pip3'
export PYTHONPATH=/usr/local/python3.9/lib/python3.9/site-packages:$PYTHONPATH
source /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.mfbz.cn/a/883975.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sql Developer日期显示格式设置

默认时间格式显示 设置时间格式:工具->首选项->数据库->NLS->日期格式: DD-MON-RR 修改为: YYYY-MM-DD HH24:MI:SS 设置完格式显示:

JavaEE: 深入探索TCP网络编程的奇妙世界(四)

文章目录 TCP核心机制TCP核心机制四: 滑动窗口为啥要使用滑动窗口?滑动窗口介绍滑动窗口出现丢包咋办? TCP核心机制五: 流量控制 TCP核心机制 上一篇文章 JavaEE: 深入探索TCP网络编程的奇妙世界(三) 书接上文~ TCP核心机制四: 滑动窗口 为啥要使用滑动窗口? 之前我们讨…

计算机网络--HTTP协议

1.TCP,UDP的对比图 TCP:面向连接的,可靠的,字节流服务; UDP:无连接的,不可靠的,数据报服务; 2.补充网络部分的其他知识点 1).复位报文段 在某些特殊条件下, TCP 连接的一端会向另一端发送携带 RST 标志的报文段,即复位报文段,已通知对方…

大数据-146 Apache Kudu 安装运行 Dockerfile 模拟集群 启动测试

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

视觉分析在垃圾检测中的应用

随着城市化进程的加快,垃圾管理成为现代城市面临的重大挑战。有效的垃圾识别和分类不仅能提升环境保护的效率,还能减少资源浪费。基于视觉分析的垃圾识别算法应运而生,为解决这一问题提供了技术支持。 垃圾识别算法的技术实现主要依赖于深度学…

002、视频格式转换

下载地址 http://www.pcfreetime.com/formatfactory/CN/index.html

【C++进阶】AVL树的介绍及实现

【C进阶】AVL树的介绍及实现 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. AVL的介绍 2. AVL树的实现 2.1 AVL树的结构 2.2 AVL树的插入 2.2.1 插入一个值的大概过程 2.2.2 …

2024年中国电子学会青少年软件编程(Python)等级考试(二级)核心考点速查卡

考前练习 2024年03月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 解析 2024年06月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 解析 知识点描述 …

C语言题目之单身狗2

文章目录 一、题目二、思路三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、思路 第一步 在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况,而本道题是出现两个单身狗的情况。根据一个数…

LabVIEW编程能力如何能突飞猛进

要想让LabVIEW编程能力实现突飞猛进,需要采取系统化的学习方法,并结合实际项目进行不断的实践。以下是一些提高LabVIEW编程能力的关键策略: 1. 扎实掌握基础 LabVIEW的编程本质与其他编程语言不同,它是基于图形化的编程方式&…

宝塔面板部署雷池社区版教程

宝塔面板部署雷池社区版教程 简单介绍一下宝塔面板,安全高效的服务器运维面板,使用宝塔面板的人非常多 在网站管理上,许多用户都是通过宝塔面板进行管理,宝塔面板的Nginx默认监听端口为80和443,这就导致共存部署时雷池…

信息安全工程师(23)网络安全体系相关模型

前言 网络安全体系相关模型是描述网络安全体系如何实现的理论框架和抽象模型,它们为理解和设计网络安全解决方案提供了系统化的方法。 1. PDR模型 提出者:美国国际互联网安全系统公司(ISS)核心内容:保护(Protection)、检测(Detection)、响应(…

MongoDB 双活集群在运营商的实践

在现代电信行业中,订单中心作为核心业务系统之一,承担着处理客户订单、管理订单状态、与各个业务系统进行交互等重要职责。其订单中心的高效运作直接关系到客户体验和业务连续性。为了满足不断增长的业务需求和日益复杂的运营环境,运营商需要…

华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?

场景介绍 本章节将向您介绍如何在地图的指定位置添加点注释以标识位置、商家、建筑等,并可以通过信息窗口展示详细信息。 点注释支持功能: 支持设置图标、文字、碰撞规则等。支持添加点击事件。 PointAnnotation有默认风格,同时也支持自定…

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

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

jupyter使用pytorch

1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点(一)优点(二)缺点 四、MLP分类任务实现…

多模态大模型学习(一)

参考:https://www.bilibili.com/video/BV1kT411o7a6?p2&spm_id_frompageDriver&vd_source156234c72054035c149dcb072202e6be 余弦相似度,让正样本内积趋近于1,负样本趋近于-1。度量学习。N特别大时,负样本远大于正样本&…

喜报!厦门唐普信息技术斩获 厦门火炬高新区“火炬瞪羚企业” 殊荣

近日,依据《厦门火炬高新区关于支持科技企业创新提质发展的若干措施》(厦高管规 [2024] 3 号),火炬管委会启动了 2024 年度 “火炬瞪羚企业” 认定工作。 厦门火炬高新区管委会对2024年“火炬瞪羚企业”名单进行了公示&#xff0…

机器翻译之多头注意力(MultiAttentionn)在Seq2Seq的应用

目录 1.多头注意力(MultiAttentionn)的理念图 2.代码实现 2.1创建多头注意力函数 2.2验证上述封装的代码 2.3 创建 添加了Bahdanau的decoder 2.4训练 2.5预测 3.知识点个人理解 1.多头注意力(MultiAttentionn)的理念图…