Linux上使用Python源码编译安装Python

安装python

apt install python3-dev python3 python3-venv
yum install python38-devel

源码安装Python

1.下载需要的Python版本

Python源码地址:https://www.python.org/downloads/source/

在这里插入图片描述

2.安装gcc(yum install gcc)

在这里插入图片描述

3.解压,配置,安装

tar -zxvf Python-3.8.18.tgz
mkdir /usr/local/Python38
cd Python-3.8.18
./configure --prefix=/usr/local/python38
make -j 8 && make install

4.链接

ln -s /usr/local/python38/bin/python3.8 /usr/bin/python
ln -s /usr/local/python38/bin/pip3 /usr/bin/pip

whl文件安装python库

有网的环境直接用pip,方便快捷:

pip install  xxx

没网的情况下,可以去官网搜索需要的python库下载对应的whl文件进行安装。注意,此时下载的whl安装包一定要是符合自己Python版本和系统处理器位数的版本,下载的库名中cp39代表python3.9版本,想知道系统具体可以安装哪些标签的.whl文件,可以使用pip debug --verbose,兼容的文件标签就会显示。

[fakerth@localhost ~]$ pip debug --verbose
pip version: pip 23.0.1 from /usr/local/python38/lib/python3.8/site-packages/pip (python 3.8)
sys.version: 3.8.18 (default, Nov 17 2023, 18:40:57) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)]
sys.executable: /usr/local/python38/bin/python3.8
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /usr/local/python38/lib/python3.8/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:CacheControl==0.12.11colorama==0.4.6distlib==0.3.6distro==1.8.0msgpack==1.0.4packaging==21.3platformdirs==2.6.2pyparsing==3.0.9pyproject-hooks==1.0.0requests==2.28.2certifi==2022.12.07chardet==5.1.0idna==3.4urllib3==1.26.14rich==12.6.0 (Unable to locate actual module version, using vendor.txt specified version)pygments==2.13.0typing_extensions==4.4.0 (Unable to locate actual module version, using vendor.txt specified version)resolvelib==0.8.1setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)six==1.16.0tenacity==8.1.0 (Unable to locate actual module version, using vendor.txt specified version)tomli==2.0.1webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 543cp38-cp38-manylinux_2_28_x86_64cp38-cp38-manylinux_2_27_x86_64cp38-cp38-manylinux_2_26_x86_64cp38-cp38-manylinux_2_25_x86_64cp38-cp38-manylinux_2_24_x86_64cp38-cp38-manylinux_2_23_x86_64cp38-cp38-manylinux_2_22_x86_64cp38-cp38-manylinux_2_21_x86_64cp38-cp38-manylinux_2_20_x86_64cp38-cp38-manylinux_2_19_x86_64cp38-cp38-manylinux_2_18_x86_64cp38-cp38-manylinux_2_17_x86_64cp38-cp38-manylinux2014_x86_64cp38-cp38-manylinux_2_16_x86_64cp38-cp38-manylinux_2_15_x86_64cp38-cp38-manylinux_2_14_x86_64cp38-cp38-manylinux_2_13_x86_64cp38-cp38-manylinux_2_12_x86_64cp38-cp38-manylinux2010_x86_64cp38-cp38-manylinux_2_11_x86_64cp38-cp38-manylinux_2_10_x86_64cp38-cp38-manylinux_2_9_x86_64cp38-cp38-manylinux_2_8_x86_64cp38-cp38-manylinux_2_7_x86_64cp38-cp38-manylinux_2_6_x86_64cp38-cp38-manylinux_2_5_x86_64cp38-cp38-manylinux1_x86_64cp38-cp38-linux_x86_64cp38-abi3-manylinux_2_28_x86_64cp38-abi3-manylinux_2_27_x86_64cp38-abi3-manylinux_2_26_x86_64cp38-abi3-manylinux_2_25_x86_64cp38-abi3-manylinux_2_24_x86_64cp38-abi3-manylinux_2_23_x86_64cp38-abi3-manylinux_2_22_x86_64cp38-abi3-manylinux_2_21_x86_64cp38-abi3-manylinux_2_20_x86_64cp38-abi3-manylinux_2_19_x86_64cp38-abi3-manylinux_2_18_x86_64cp38-abi3-manylinux_2_17_x86_64cp38-abi3-manylinux2014_x86_64cp38-abi3-manylinux_2_16_x86_64cp38-abi3-manylinux_2_15_x86_64cp38-abi3-manylinux_2_14_x86_64cp38-abi3-manylinux_2_13_x86_64cp38-abi3-manylinux_2_12_x86_64...

官网地址:https://pypi.org/

在这里插入图片描述

最后一步,安装:

pip install xxxx.whl

问题解决

1.ERROR!You probably have to install the development version of the Python package for your distribution.

configure: error: Could not link test program to Python. Maybe the main Python library has beeninstalled in some non-standard library path. If so, pass it to configure,via the LDFLAGS environment variable.Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"============================================================================ERROR!You probably have to install the development version of the Python packagefor your distribution.  The exact name of this package varies among them.============================================================================See `config.log' for more details

明明有python,为什么还会报这个错误呢?解决方法:安装python-dev。正常可以使用yum或者apt-get命令直接安装python-dev,但如果没有网络,就使用如上的源码下载即可。

2.Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.”)

当使用pip install安装python库时,这个错误不期而遇。网上有很多用yum或者apt-get安装openssl或者openssl-dev,不如用源码安装openssl,一次解决问题:

wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate 下载openssl1.1.1
tar -zxf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n
./config --prefix=/usr/local/openssl 
make -j && make install 
openssl version

安装完成后记得重新编译安装python:

./configure --prefix=/usr/local/python38 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
make && make install

3.ModuleNotFoundError: No module named ‘_bz2’

解决方法,安装bzip2和bzip2-devel后重新编译python:

yum install bzip2 bzip2-devel
./configure --prefix=/usr/local/python38 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
make && make install

4.sh: pod2html: command not found

yum install perl

5.autoreconf:command not find

yum  -y install autoconf automake libtool
yum -y install mpich*
echo "export PATH=$PATH:/usr/lib64/mpich/bin/" >> /root/.bashrc
source /root/.bashrc

6.ModuleNotFoundError: No module named ‘xxx’

pip install xxx

7.ERROR: No matching distribution found for typing-extensions

加上–no-deps治标不治本,缺少的typing-extensions也要安装。

pip install --no-deps xxxxx-cp37-cp37m-linux_x86_64.whl

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新自动定位版本付费进群系统源码

更新内容: 1.在网站首页增加了付款轮播功能。 2.新增了城市定位功能,方便用户查找所在城市的相关信息。 3.对域名库及支付设置进行了更新和优化。 4.增加了一种图模板设置模式,简化了后台模板设置流程。 5.此外还进行了前后台的其他优化…

缩点+图论路径网络流:1114T4

http://cplusoj.com/d/senior/p/SS231114D 重新梳理一下题目 我们先建图 x → y x\to y x→y,然后对点分类:原串出现点,原串未出现点。 假如我们对一个原串出现点进行了操作,那么它剩余所有出边我们立刻去操作必然没有影响。所…

汽车以太网IOP测试新利器

IOP测试目的 汽车以太网物理层IOP(Interoperability )测试,即测试被测对象以太网物理层之间的互操作性。用于验证车载以太网PHY能否在有限时间内建立稳定的链路;此外,还用于验证车载以太网PHY可靠性相关的诊断特性&am…

23111701[含文档+PPT+源码等]计算机毕业设计javaweb点餐系统全套餐饮就餐订餐餐厅

文章目录 **项目功能简介:****点餐系统分为前台和后台****前台功能介绍:****后台功能介绍:** **论文截图:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:77687156…

剑指offer --- 用两个栈实现队列的先进先出特性

目录 前言 一、读懂题目 二、思路分析 三、代码呈现 总结 前言 当我们需要实现队列的先进先出特性时,可以使用栈来模拟队列的行为。本文将介绍如何使用两个栈来实现队列,并给出具体的思路和代码实现。 一、读懂题目 题目:用两个栈实现一…

2023.11.16使用原生js和canvas实现图片矩形框标注功能

2023.11.16使用原生js和canvas实现图片矩形框标注功能 做训练的时候需要一些数据集&#xff0c;但是网上数据集有时不能满足自身的使用需求&#xff0c;自己编制一个标注软件实现数据采集功能。 记录的数据集可以传入后端&#xff0c;在后端再次进行处理。 <!DOCTYPE htm…

【蓝桥杯省赛真题01】C++水下探测器 第十届蓝桥杯中小学生创意编程大赛C++编程比赛省赛真题解析

目录 C/C++水下探测器 一、题目要求 1、编程实现 2、输入输出 二、算法分析

Python----图像的手绘效果

图像的数组表示 图像是有规则的二维数据&#xff0c;可以用numpy 库将图像转换成数组对象 : from PIL import Image import numpy as np imnp.array(Image.open("D://np.jpg")) print(im.shape,im.dtype)结果&#xff1a; 图像转换对应的ndarray 类型是3 维数据&am…

注册表单mvc 含源代码

总结 jsp给我们的ControllerServlet.java,ControllerServlet.java获取参数,信息封装给RegisterFormBean.java的对象看是否符合格式,符合格式再信息封装给UserBean对象,调用Dbutil插入方法查重.]]要创建一个user集合成功跳哪个界面,打印信息注意什么时候要加getsession失败跳哪…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-C

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C 一、竞赛时间 总计&#xff1a;360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

什么是单域名SSL安全证书?

单域名证书是什么&#xff1f; 单域名证书是指只包含一个具体域名的SSL/TLS证书&#xff0c;它可以用于保护单个主机名的HTTPS通信。例如&#xff0c;如果您有一个网站http://www.example.com&#xff0c;则单域名证书将仅为该域名颁发。 这种证书在保护单个域的安全方面很有…

2.5 Windows驱动开发:DRIVER_OBJECT对象结构

在Windows内核中&#xff0c;每个设备驱动程序都需要一个DRIVER_OBJECT对象&#xff0c;该对象由系统创建并传递给驱动程序的DriverEntry函数。驱动程序使用此对象来注册与设备对象和其他系统对象的交互&#xff0c;并在操作系统需要与驱动程序进行交互时使用此对象。DRIVER_OB…

vscode Prettier配置

常用配置项&#xff1a; .prettierrc.json 是 Prettier 格式化工具的配置文件 {"printWidth": 200, // 指定行的最大长度"tabWidth": 2, // 指定缩进的空格数"useTabs": false, // 是否使用制表符进行缩进&#xff0c;默认为 false"singl…

【MySQL】聚合函数:汇总、分组数据

文章目录 学习目标MAX()、MIN()、AVG()、SUM()、COUNT()COUNT(*) 得到所有记录条目DISTINCT去重练习1&#xff08;使用UNION &#xff0c; SUM&#xff0c; BETEEN AND&#xff09;GROUP BY子句练习2&#xff08;使用sum&#xff0c;group by&#xff0c; join on&#xff0c; …

Redis 配置文件信息中文翻译版

前言 Redis 配置文件信息中文翻译版&#xff0c;方便大家阅读和理解对应参数信息及配置参数信息 # Redis configuration file example# Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # 注意:当…

Linux下向Github仓库推送

文章目录 Git 与 Github安装git在github下创建项目下载项目到本地Git三板斧第一板斧 git add第二板斧 git commit第三板斧 git push Git 与 Github Git是目前从开发人员到设计人员的版本控制技术。gitee是国内社交代码托管平台。这是一个你可以玩和实验的地方。在这里你可以找…

Maven依赖管理项目构建工具(保姆级教学)

一、Maven介绍 官网地址&#xff1a;Maven – Introduction Maven 是一款为 Java 项目管理构建、依赖管理的工具&#xff08;软件&#xff09;&#xff0c;使用 Maven 可以自动化构建、测试、打包和发布项目&#xff0c;大大提高了开发效率和质量。 Maven就是一个软件&#…

TSINGSEE青犀智慧机房AI+视频智能监管方案,保障机房设备稳定运转

一、背景与需求分析 随着互联网的高速发展&#xff0c;机房数量及配套环境设备日益增多&#xff0c;其运行状况直接决定着企业组织的运营效率和服务质量。作为企业信息化的核心&#xff0c;机房的安全监测与管理&#xff0c;不仅关系到企业的稳定运转&#xff0c;同时也关系到…

Java编程中,使用时间戳机制实现增量更新的示例

一、需求 课程下可以创建多个讲次&#xff0c;然后分享出去。 在没有更新分享前&#xff0c;通过分享链接看到的课程及讲次详情是快照。课程制作者可以继续修改调整自己的课程&#xff0c;对分享用户是不可见。 当制作者完成修改后&#xff0c;更新分享&#xff0c;让用户看到…

MySQL事务特性原理

文章目录 事务四特性预备知识checkpoint机制redo日志redo的流程事务提交后什么时候进行刷盘 undo日志&#xff1a;数据还未被修改、也是备份Undo日志的作用undo的存储结构回滚段与事务回滚段中的数据分类undo的类型undo log的生命周期 MVCC一、 原子性原理如何通过undo日志实现…