Pip,whl,源码编译安装Python库

pip安装

pip 是 Python 包管理工具,用于安装和管理 Python 包。pip 是 Python 开发中不可或缺的工具,能够帮助开发者轻松地管理项目所需的各种库和依赖。无论是安装新包、升级现有包还是卸载不需要的包,pip 都提供了简单而强大的命令来完成这些任务。基本功能有:

安装包:从 Python 包索引(Python Package Index, PyPI)或其他源安装 Python 包。

pip install package_name

升级包:升级已安装的包到最新版本。

pip install --upgrade package_name

卸载包:卸载已安装的包。

pip uninstall package_name

列出已安装的包:显示所有已安装的包及其版本。

pip list

安装指定版本的包:可以安装特定版本的包。

pip install package_name==1.0.0

从文件安装:可以从 requirements.txt 文件安装包,该文件列出了所有需要的包及其版本。

pip install -r requirements.txt

查看包信息:查看某个包的详细信息。

pip show package_name

搜索包:在 PyPI 上搜索包。

pip search package_name

配置源:可以配置使用国内的镜像源来加快下载速度。

pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

在requirements.txt中配置源。

# Specify the primary package index URL
--index-url https://pypi.tuna.tsinghua.edu.cn/simple# Specify additional package index URLs
--extra-index-url https://download.pytorch.org/whl/cpu
--extra-index-url https://developer.download.nvidia.com/compute/redistabsl-py==1.3.0
antlr4-python3-runtime==4.9.3
astunparse==1.6.3
cachetools==5.2.0
certifi==2022.9.24
charset-normalizer==2.1.1
dlio_profiler_py==0.0.3
flatbuffers==23.5.26
gast==0.4.0
google-auth==2.14.1
google-auth-oauthlib==0.7.0
  • –index-url:设置主要的包索引 URL,pip 会首先从这个 URL 中搜索并安装包。
  • –extra-index-url:设置额外的包索引 URL,如果在主要包索引 URL 中找不到包,pip 会从这些 URL 中搜索并安装包。

whl文件安装

没网的情况下,可以去pypi官网搜索需要的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...

pypi官网:https://pypi.org/ 。搜索找到需要的库选择合适版本的whl文件下载安装即可。

pip install xxxx.whl

在这里插入图片描述

源码编译安装

pypi官网:https://pypi.org/ 。正常情况下用pip安装最方便,如果是没网络的环境使用whl文件,或者conda pack安装。使用源码编译安装python库个人感觉只会出现在由于外部环境缺少相关库导致pip安装失败,需要进一步确定问题发生的情况,比如mpi4py需要安装mpi,如果系统没有装mpi,则会导致mpipy4安装失败。

python setup.py build
python setup.py install

在这里插入图片描述

ChatGPT:
通过源码安装 Python 库有以下几个优势:

  1. 更高的可定制性
    源码安装允许你对库进行定制和修改,以满足特定需求。例如,你可以修改库的代码,添加或修改功能,或者优化性能。

  2. 兼容性和依赖管理
    通过源码安装,你可以确保库与特定版本的依赖项兼容。这在处理某些需要特定版本的依赖项或解决依赖冲突时非常有用。

  3. 深入了解库的实现
    通过查看和编译库的源码,你可以更好地理解库的内部实现,这有助于调试和优化你的应用程序。

  4. 最新版本或修复
    有时,库的最新版本或修复可能还没有发布到 PyPI。通过源码安装,你可以直接从库的代码仓库获取最新的代码和功能。

  5. 无二进制依赖
    某些 Python 库包含需要编译的 C/C++ 代码。通过源码安装,你可以确保这些库在你的系统上正确编译和工作,避免了二进制分发中可能存在的兼容性问题。

  6. 安全性和透明性
    通过查看源码并编译安装库,你可以确保没有包含任何恶意代码或安全漏洞。这在处理敏感项目或需要高安全性的环境中特别重要。

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

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

相关文章

中国改革报是什么级别的报刊?在哪些领域具有较高的影响力?

中国改革报是什么级别的报刊?在哪些领域具有较高的影响力? 《中国改革报》是国家发展和改革委员会主管的全国性综合类报纸。它在经济领域和改革发展方面具有重要的影响力,是传递国家政策、反映改革动态的重要平台。该报对于推动中国的经济改…

Pulsar 社区周报 | No.2024-05-24

“ 各位热爱 Pulsar 的小伙伴们,Pulsar 社区周报更新啦!这里将记录 Pulsar 社区每周的重要更新,每周发布。 ” Pulsar Weekly Merge Stars 感谢以下的小伙伴,感谢你们本周为 Apache Pulsar 做的精彩贡献(排名不分先后&…

C++的数论相关算法

数论是数学的一个分支,主要研究整数的性质和关系。在计算机科学中,数论算法对于密码学、优化问题和算法分析等方面都具有重要作用。C作为一种高效的编程语言,非常适合用来实现这些算法。下面我们将介绍几个C中的数论相关算法,包括…

一篇文章教你入门Python

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

[Algorihm][简单多状态DP问题][买卖股票的最佳时机含冷冻期][买卖股票的最佳时机含手续费]详细讲解

目录 1.买卖股票的最佳时机含冷冻期1.题目链接买卖股票的最佳时机含冷冻期2.算法原理详解3.代码实现 2.买卖股票的最佳时机含手续费1.题目链接2.算法原理详解3.代码实现 1.买卖股票的最佳时机含冷冻期 1.题目链接 买卖股票的最佳时机含冷冻期 2.算法原理详解 思路&#xff…

基于jeecgboot-vue3的Flowable新建流程定义(三)

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 接上一节 8、同时可以进行流程的编辑 /** 编辑流程设计弹窗页面 */const handleLoadXml (row) > {console.log("handleLoadXml row",row)designerData.title "流程设…

SW手势定义

crtle:独立; T:测量;R隐藏;视图>用户界面>动态显示父子关系 crtld:相同零件; alte:草图显示; altw:基准面显示; ALTZ:上一视图;

MyBatis框架的使用:mybatis介绍+环境搭建+基础sql的使用+如何使用Map传入多个参数+返回多个实体用List或者Map接收+特殊sql的使用

MyBatis框架的使用:mybatis介绍环境搭建基础sql的使用如何使用Map传入多个参数返回多个实体用List或者Map接收特殊sql的使用 一、MyBatis介绍1.1 特性1.2 下载地址1.3 和其它持久层技术对比 二、搭建环境2.1配置maven2.2 创建mybatis配置文件2.3 搭建测试环境 三、基…

JAVA:Spring Boot整合MyBatis Plus持久层

1、简述 MyBatis Plus是MyBatis的增强工具包,它在MyBatis的基础上进行了扩展,提供了许多便捷的功能,例如通用CRUD操作、分页插件、代码生成器等。使用MyBatis Plus,开发者可以更加方便地进行持久层操作,并且减少了很多…

自动驾驶---Perception之IPM图和BEV图

1 前言 IPM(Inverse Perspective Mapping,逆透视变换)图的历史可以追溯到计算机视觉和图像处理领域的发展。逆透视变换是一种用于消除图像中透视效应的技术,使得原本由于透视产生的形变得以纠正,进而更准确地描述和理解…

【优选算法】位运算 {位运算符及其优先级;位运算的应用:判断位,打开位,关闭位,转置位,位图,get lowbit,close lowbit;相关编程题解析}

一、位运算符及其优先级 我们知道,计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性…

04_前端三大件JS

文章目录 JavaScript1.JS的组成部分2.JS引入2.1 直接在head中通过一对script标签定义脚本代码2.2创建JS函数池文件,所有html文件共享调用 3.JS的数据类型和运算符4.分支结构5.循环结构6.JS函数的声明7.JS中自定义对象8.JS_JSON在客户端使用8.1JSON串格式8.2JSON在前…

弘君资本股市行情:股指预计保持震荡上扬格局 关注汽车、银行等板块

弘君资本指出,近期商场体现全体分化,指数层面上看,沪指一路震动上行,创出年内新高,创业板指和科创50指数体现相对较弱,依然是底部震动走势。从盘面体现上看,轮动依然是当时商场的主基调&#xf…

IBERT眼图扫描(高速收发器八)

前文讲解了GTX的时钟及收发数据通道的组成,之后讲解了眼图、加重、均衡等原理及原因,本文通过xilinx提供的IBERT IP完成实际工程的眼图扫描,确定加重和幅值调节的参数。 1、回环模式 在此之前,需要了解一下GTX的回环模式。如果板…

【字典树(前缀树) 字符串】2416. 字符串的前缀分数和

本文涉及知识点 字典树(前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words ,该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如,如果 words [“a”,…

【list】list库介绍 + 简化模拟实现

本节博客先对list进行用法介绍,再在库的基础上简化其内容和形式,简单进行模拟实现,有需要借鉴即可。 目录 1.list介绍1.1 list概述1.2相关接口的介绍 2.简化模拟实现3.各部分的细节详述3.1结点3.2迭代器细节1:迭代器用原生指针还是…

【Codesys】-执行第三方程序,或Windows脚本

该记录旨在解决RTE作为第一个Windows的一个exe程序不能调用其他程序的问题。 可以实现:在PLC界面打开第三方程序、在PLC界面关闭本机Windows操作系统 首先添加依赖库-SysProcess,3.5.17.0 然后在程序里执行相应的指令,该指令可以被Windows识别为类似于执行Bat文件…

国产操作系统上使用rsync恢复用户数据 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上使用rsync恢复用户数据 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇关于在国产操作系统上使用rsync备份并还原用户数据的文章。rsync是一款功能强大的文件同步和备份工具,广泛用于Linux系…

河南乙级道路与桥梁资质年审材料准备要点解析

河南乙级道路与桥梁资质年审材料准备要点解析如下:河南宽信权经理 一、企业基本情况材料 营业执照副本复印件:确保复印件清晰、完整,并加盖企业公章。 企业章程:提供最新的企业章程,并加盖企业公章。此材料需反映企业…

代码随想录——从前序与中序遍历序列构造二叉树(Leetcode105)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …