为什么你需要升级 pip ?

manylinux:适用于任何Linux的Python轮子(几乎) manylinux 电子邮件: 档案: : 较旧的档案: ://groups.google.com/forum/#!forum / manylinux项目的目标是提供一种方便的方法来分发二进制Python扩展作为Linux上的轮子。 这项工作已产生了 (manylinux1), (manylinux2010), (manylinux2014)和 (manylinux_x_y)。 PEP 513定义了manylinux1_x86_64和manylinux1_i686平台标签,并且轮子是在Centos5上构建的。 Centos5于2017年3月31日到达使用寿命终止(EOL)。 PEP 571定义了manylinux2010_x86_64和manylinux2010_i686平台标签,并且轮子是在Centos6上构建的。 Centos6于2020年11月30日到达使用 立即下载

更新软件版本可以修复bug,增加新功能和提升性能。例如,NumPy 1.20 添加了类型注释,并在可能的情况下通过使用SIMD来提高性能。如果您要安装NumPy,则可能要安装最新版本。

相反,如果您使用的是旧版本的pip,则安装最新版本的Python软件包可能会失败,或者以较慢,更复杂的方式进行安装。

为什么?这是关于glibc版本控制以及pip如何安装软件包的一系列问题。

让我们看看问题到底是什么,如何解决,最后是什么原因造成的。

旧版本pip的问题

让我们从Ubuntu 18.04 Docker镜像开始着手。该版本的Ubuntu在2018年4月发布,安装有Python 3.6和pip 9 版本。

[itamarst@blake dev]$ docker run -it ubuntu:18.04
root@1a43d55f0524:/# apt-get update
...
root@1a43d55f0524:/# apt-get install --no-install-recommends python3 python3-pip
...
root@1a43d55f0524:/# pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

目前为止,事情进展顺利。

失败原因#1:从源代码编译

接下来,让我们安装加密程序包,它是PyPI上下载次数最多的Python程序包之一,每月有数百万次下载(通常是间接依赖)。

root@1a43d55f0524:/# pip3 install cryptography
Collecting cryptography
  Downloading https://files.pythonhosted.org/packages/fa/2d/2154d8cb773064570f48ec0b60258a4522490fcb115a6c7c9423482ca993/cryptography-3.4.6.tar.gz (546kB)
    100% |################################| 552kB 1.4MB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ModuleNotFoundError: No module named 'setuptools'
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6jesygn0/cryptography/

程序进展不是很顺利。

这个错误意味着pip要我们编译软件包;如果我们安装了setuptools,编译器和Python开发工具链,这将起作用,但非常慢。

当然,这不只是一个package。PyArrow也会发生相同的问题,例如:

root@1a43d55f0524:/# pip3 install pyarrow
Collecting pyarrow
  Downloading https://files.pythonhosted.org/packages/62/d3/a482d8a4039bf931ed6388308f0cc0541d0cab46f0bbff7c897a74f1c576/pyarrow-3.0.0.tar.gz (682kB)
    100% |################################| 686kB 1.1MB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ModuleNotFoundError: No module named 'setuptools'
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-heq6zwd7/pyarrow/

为什么pip试图从头开始编译这些软件包?为什么我们没有获得二进制的、预编译的软件包?

在考虑第二种故障模式之后,我们将稍等一会儿找到答案。

失败原因#2:旧版本

接下来,安装Fil,Python内存分析器https://pythonspeed.com/products/filmemoryprofiler/。

root@1a43d55f0524:/# pip3 install filprofiler
Collecting filprofiler
  Downloading https://files.pythonhosted.org/packages/e3/a2/843e7b5f1aba27effb0146c7e564e2592bfc9344a8c8ef0d55245bd47508/filprofiler-0.7.2-cp36-cp36m-manylinux1_x86_64.whl (565kB)
    100% |################################| 573kB 1.8MB/s 
Installing collected packages: filprofiler
Successfully installed filprofiler-0.7.2

安装成功!除了访问Fil的PyPI页面(https://pypi.org/project/filprofiler/)外,您都会看到``0.7.2`的版本很旧。在撰写本文时,Fil的最新版本是0.14.1。

为什么要安装旧版本?

pip和manylinux轮子

从NumPy到Cryptography的许多软件包都要求在C / C ++ / Cython / Rust / etc中编译一些代码。为了节省您从头开始编译所有内容的需要,维护人员可以将代码的编译版本(“ wheels”)上载到Python Package Index。如果pip碰到适用于您的特定版本的Python和操作系统版本的轮子,它将下载它而不是源代码。

对于Linux,有多种轮子变体:manylinux1,manylinux2010和manylinux2014。您可以在下载的轮子的文件名中看到正在使用哪个变体。

问题是:旧版本的pip不支持manylinux2010,当然也不支持manylinux2014。Ubuntu 18.04中的pip太旧了,因此它只了解manylinux1。这解释了我们看到的两个问题:

1、如果您查看PyPI上PyArrow 3.0.0的可用文件列表(https://pypi.org/project/pyarrow/3.0.0/#files),您会看到只有很多linux2010和linux2014的轮子。因此,pip会回退到需要编译的源代码包。

2、如果检查Fil的PyPI文件(https://pypi.org/project/filprofiler/0.14.1/#files),则会看到有manylinux2010轮子,而根本没有源程序包;因为从源代码构建有点棘手,所以我只分发编译后的程序包。这意味着pip会继续使用该软件包的较早版本,直到找到具有manylinux1轮子的软件包为止。

解决方案:升级pip

为了获得最新最好的软件包,而无需编译,您需要升级到最新版本的pip。如何执行取决于您的安装环境。

通常,您可以执行pip install --upgrade pip来每天进行一次升级。

但是,在某些环境中可能会出现问题。例如,如果您看一下我们如何在Ubuntu 18.04中设置Python,那么我们是通过系统软件包安装pip的。

问题在于,覆盖系统软件包中的随机文件是一个坏主意。除非您在环境中运行,否则在必要时将从头开始重建(例如Docker映像),那么永远不要以root或sudo的身份运行pip install来修改系统软件包。

相反,在Ubuntu 18.04上,您可以通过下载获得pip:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py

或者您可以创建一个virtualenv虚拟环境,然后通过执行pip install --upgrade pip升级其pip:

root@1a43d55f0524:/# python3 -m venv myvenv
root@1a43d55f0524:/# . myvenv/bin/activate
(myvenv) root@1a43d55f0524:/# pip --version
pip 9.0.1 from /myvenv/lib/python3.6/site-packages (python 3.6)
(myvenv) root@1a43d55f0524:/# pip install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
Successfully installed pip-21.0.1

现在,我们有了一个更新后的pip,我们可以轻松地安装最新版本的cryptography和filprofiler:

(myvenv) root@1a43d55f0524:/# pip install cryptography filprofiler
Collecting cryptography
  Downloading cryptography-3.4.6-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB)
     |################################| 3.2 MB 4.5 MB/s 
...
Installing collected packages: pycparser, threadpoolctl, cffi, filprofiler, cryptography
Successfully installed cffi-1.14.5 cryptography-3.4.6 filprofiler-0.14.1 pycparser-2.20 threadpoolctl-2.1.0

注意,我们下载了包含cryptography的manylinux2014软件包。

为什么会有这么多Linux版本存在?

Linux上已编译的Python扩展链接到标准C语言库,特别的是它们链接到GNU Libc(又名glibc)。您可以使用ldd实用工具查看可执行文件或共享库链接到哪些库:

root@1a43d55f0524:/# cd myenv/lib/python3.6/site-packages
root@1a43d55f0524:/# ldd cryptography/hazmat/bindings/_openssl.abi3.so 
        linux-vdso.so.1 (0x00007ffdbea7b000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fba7b1bf000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fba7adce000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fba7b7b0000)

注意,编译后的Python扩展尤其依赖于/lib/x86_64-linux-gnu/libc.so.6,即glibc。

如果您用glibc的较新版本编译代码,它可能不需要在旧版本提供新的API或符号。这意味着你的代码不会在旧的Linux发行版上运行。

有许多对这个问题的不同解决方案。Conda通过针对旧版本的glibc头文件来编译所有的包;基本上在广泛的Linux发行版它有一个自定义编译安装设计工作。

PyPI二进制轮子通过编译旧版本的Linux,以及它的相应旧版本的glibc来解决这个问题。因为它是针对旧版本编译的,它会与任何新版本兼容工作。

  • manylinux1包建在CentOS 5。

  • manylinux2010包建在CentOS 6。

  • manylinux2014软件包都建立在CentOS 7上。

每个新版本都需要对应的新发布的pip。你可以学到更多的PEP-571和PEP-599。

升级您的pip!

无论您是建立一个开发环境或写你的Dockerfile,请确保升级pip。否则,你就会有一个更难的时间安装软件包。

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

manylinux2014-cross-arm:manylinux2014 aarch64armv7l交叉编译docker镜像 manylinux2014跨臂 manylinux2014 aarch64 / armv7l交叉编译docker镜像 建筑学 作业系统 标签 目标Python 托管Python aarch64 Ubuntu 14.04 aarch64 从manylinux2014_aarch64复制 的Python 3.9 armv7l Ubuntu 12.04 armv7l / armv7 /opt/python/cp3* ,从源代码构建 的Python 3.9 目标交叉编译器和安装在映像中。 环境变量 设置了以下环境变量列表: CARGO_BUILD_TARGET CARGO_TARGET_${target}_LINKER 立即下载

相关推荐

毕业设计基于Yolov5的垃圾分类检测系统python源码+训练好的模型+项目说明.zip

功能特性 垃圾图像识别:上传图片自动识别垃圾类别(可回收物、有害垃圾、厨余垃圾、其他垃圾) 用户管理:支持用户注册、登录、个人资料管理 历史记录:保存检测历史,可随时查看历史检测结果 管理后台:管理员可查看系统日志、用户信息、使用统计 响应式界面:适配不同设备的前端界面 技术栈 前端 React.js React Router Bootstrap 5 Axios 后端 Flask SQLAlchemy Flask-CORS Werkzeug 模型 YOLOv5 PyTorch OpenCV 安装与使用 环境要求 Python 3.8+ Node.js 14+ CUDA(可选,用于GPU加速) 后端安装 安装Python依赖 cd yolov5-6.0 pip install -r requirements.txt cd ../garbage_classification/backend pip install flask flask-cors flask-sqlalchemy pillow 启动后端服务 cd garbage_classification/backend python app.py 前端安装 安装前端依赖 cd garbage_classification_frontend npm install 启动前端开发服务器 npm start 构建生产版本 npm run build 使用预训练模型检测 使用批处理脚本快速运行垃圾检测: run_detect.bat 或直接运行检测脚本: cd yolov5-6.0 python detect.py --weights best.pt --source <图片路径> --img 640 --conf 0.25 模型训练 准备数据集,按照YOLO格式组织数据 修改garbage.yaml配置文件 执行训练: cd

Python pip安装中manylinux1 vs manylinux2020 wheel文件之间的区别

文章目录1. 问题描述2. 解答 1. 问题描述 line_profiler-3.0.1-cp27-cp27mu-manylinux1_x86_64.whl line_profiler-3.0.1-cp27-cp27mu-manylinux2010_x86_64.whl line_profiler-3.0.1-cp35-cp35m-manylinux1_x86_64.whl line_profiler-3.0.1-cp35-cp35m-manylinux2010_x86_64.whl line_profil

craftsman2020的博客 1万+

Vivado里LDPC IP核怎么配?手把手教你从6144bit数据到完整参数设置

本文详细介绍了在Vivado中配置LDPC IP核的完整流程,从6144bit数据的参数计算到实际IP核设置。通过分析基本图选择、扩展因子计算和移位参数确定等关键步骤,帮助工程师高效完成LDPC编译码的硬件实现,并提供了时序控制、仿真验证和性能优化的实用技巧。

weixin_30352645的博客 519

使用Python pip怎么升级pip

更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ Pip是一个Python的包管理工具,实际上它也可以被看待为是一个包,Pip相当于Linux上的yum,对python的开发者来说相当方便。 我们再也无需去焦头烂额的寻找whl包,直接通过pip就可以在线安装(前提是有网络+pip版本合适的情况下) 可见pip的版本更新是相当重要的,今天小编就来教大家怎么升级pip 方法/步骤 我们首先来看看pip的版本。 pip show pip 可以看到,小编这里的pip版本

菜鸟教程 8万+

LTspice 导入 PSpice 模型实战指南 --(解决语法兼容性与模型优化问题)

本文提供了将PSpice模型成功导入LTspice的详细实战指南。针对两者间的语法兼容性问题,文章以TI UCC23513为例,逐步讲解模型获取、符号创建、常见语法错误修改及仿真验证方法,并分享了模型优化与个人库管理技巧,帮助用户高效解决模型导入与仿真难题。

weixin_28278377的博客 823

Android 面试题 Handler篇

1.Handler的实现原理。

ViewHandKownHealth的博客 955

如何升级PIP命令

1、首先使用pip show pip 命令查看当前pip版本; 2、升级命令:python -m pip install --upgrade pip; 3、验证升级成功,再次使用pip show pip命令查看pip版本。

明明很多的博客 14万+

EtherCAT应用层协议选型指南:CoE、SoE、EoE、FoE、AoE到底怎么选?看完这篇就懂了

本文深入解析EtherCAT应用层协议(CoE、SoE、EoE、FoE、AoE)的选型策略,从实时性、数据吞吐量和功能完整性三大核心指标出发,提供工业场景下的实战决策框架。通过技术特性对比、混合协议架构设计和常见故障规避指南,帮助工程师优化自动化设备通信性能。

weixin_28718793的博客 495

pip 升级_升级pip 的方法:

点击蓝字关注我们升级 pip 的方法前 言:大家好,我是阿华,应小伙伴之邀,为自学 python 的小伙伴写一篇关于升级 pip 的文章。pip 是python 的包管理软件,它非常好用。其实 pip 的升级非常简单,不会升级pip的小伙伴多数是初学者,或者英语不过关,建议大家好好学习英语。虽然升级 pip 很简单,但还是有很多小细节要注意,弄不好,你真的会升级失败 。安装前...

weixin_39548740的博客 3187

新手必看:如何用T265和ROS实现无人机室内精准定位(附PX4参数配置)

本文详细介绍了如何使用Intel Realsense T265和ROS实现无人机室内精准定位,包括硬件准备、ROS数据流架构设计、PX4参数配置及系统验证。特别针对视觉SLAM技术在室内环境中的应用,提供了从零搭建到进阶优化的全流程解析,适合无人机开发新手快速上手。

weixin_30642561的博客 406

GNSS数据资源全解析:从DCB到BSX文件的下载与应用指南

本文系统解析了GNSS数据处理所需的核心数据资源,包括DCB、BSX、SP3、CLK等关键文件的官方下载路径与应用方法。详细介绍了CDDIS、武汉大学镜像站等权威数据源,并提供了从数据下载到实际应用的完整指南,帮助用户高效获取GNSS数据,提升精密定位处理效率。

weixin_29246195的博客 141

必须升级pip,为什么?!

在《Python大学实用教程》和《跟老齐学Python:轻松入门》两本书中,都介绍了如何安装第三方库的方法: pip install package-name 在用pip安装第三方库或者模块的时候,如果检测到本地的pip版本过低,会提示升级。有的人觉得升级比较麻烦,就放弃了。 本文就要重点讲一讲,为什么要必须升级pip。 先说结论,如果该升级的时候不升级,结果是:可能会导致安装某些东西的时候失败;或者安装进程很慢,或者给你带来其他麻烦。 所以,如果不升级,后果很严重。 老版本的问题 下面是在Docker.

计算机科学、人工智能、数据分析和大数据方向的研发和教学。 3749

银行监管报送系统介绍(十五):金融审计平台

金审平台主要包括基础、财务、结算、信贷和中间业务五大板块,主要服务于审计署对中国银行的各项审计任务,同时也可为行内审计、稽核检查、数据分析、总分行提供基础数据服务,为实现基础数据共享提供了有力的数据保障。2019年1月某全国性股份制商业银行收到审计署2019-23号文,文中指出为进一步提高审计数据质量,审计署审计组派员前往9家重点商业银行,就完善标准化数据的相关情况与各银行有关部门进行讨论协商。关于数据报送频率及报送内容:数据从2019年4月开始,按月报送,即于每月25日之前报送上月数据;

银行信息系统应用架构详解 2061

pip升级所有库(包)

前言 使用pip工具管理第三方库,升级方式。 确定pip版本,如果使用的pyton2,也就是默认的python,那么pip就使用默认的pip;如果使用的python3,那么pip也需要使用pip3。 我使用的是python3+pip3。 pip版本 首先确保pip的版本是可用的,确保升级库过程中不会报错。查看pip版本: pip3 --version 如果在安装库的过程中,出现以下提示说明pip版本过低,需要升级了。 WARNING: You are using pip version 20.2.4; h

Java_web12138667的博客 4万+

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

weixin_54626591的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pip升级失败解决

pip升级失败解决 解决该问题参考了此篇博文: pip2升级报错 ( def read(rel_path: str) ->str: ) 环境 机器:centos: 7 python版本:2.7.4(Linux自带python) 1、遇到问题的原因 学习docker的过程中,了解到docker-compose插件,于是选择pip安装docker-compose插件。 2、pip安装和更新 2.1、安装pip yum -y install epel-release yum -y install pytho

qq_50661854的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python pip库如何升级_使用Python pip怎么升级pip

Pip是一个Python的包管理工具,实际上它也可以被看待为是一个包,Pip相当于Linux上的yum,对python的开发者来说相当方便。我们再也无需去焦头烂额的寻找whl包,直接通过pip就可以在线安装(前提是有网络+pip版本合适的情况下)可见pip的版本更新是相当重要的,今天小编就来教大家怎么升级pip方法/步骤我们首先来看看pip的版本。pip show pip可以看到,小编这里的pip...

weixin_39928667的博客 1775

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python pip怎么升级_使用Python pip怎么升级pip

Pip是一个Python的包管理工具,实际上它也可以被看待为是一个包,Pip相当于Linux上的yum,对python的开发者来说相当方便。我们再也无需去焦头烂额的寻找whl包,直接通过pip就可以在线安装(前提是有网络+pip版本合适的情况下)可见pip的版本更新是相当重要的,今天小编就来教大家怎么升级pip方法/步骤我们首先来看看pip的版本。pip show pip可以看到,小编这里的pip...

weixin_39608118的博客 332

提示pip需要升级,但是升级后还是会提示需要升级,则需卸载pip后重装

(venv) E:\platformtools\automagic-master>pip uninstall pip Uninstalling pip-10.0.1: Would remove: e:\platformtools\automagic-master\venv\lib\site-packages\pip-10.0.1-py3.6.egg e:\platformtools\au...

qq_39648767的博客 2083

如何升级pip指令?

通过以上步骤,你可以确保 pip 始终保持在最新版本,避免因版本过旧导致的兼容性问题!问题,通常是由于系统目录权限限制导致。若系统同时安装了 Python 2 和 3,可能需要使用。参数会将 pip 安装到用户目录,避免系统路径权限问题。需替换为你的实际 Python 解释器名称(如。通过上述任一方法均可解决权限问题。# 打开管理员权限的 PowerShell。以下是升级 pip 的详细步骤,适用于。定位到 Python 安装目录的。(IDE、Jupyter 等)。没有升级成功,如何解决?

小宝哥Code的专栏 1万+

如何用pip升级python版本,python的pip升级没反应

大家好,小编为大家解答python的pip如何更新到最新版本的问题。很多人还不知道如何用pip升级python版本,现在让我们一起来看看吧!

chatgpt002的博客 2万+

pip一键升级所有包

当你的电脑安装了太多的包又好久没升级了怎么办?使用一个一个升级太麻烦,下面介绍一种简单快捷的方式.

yxn4065的博客 1万+

pip 升级_python 升级pip

手把手教你怎么用Python pip怎么升级pip?Pip是一个Python的包管理工具,实际上它也可以被看待为是一个包,Pip相当于Linux上的yum,对python的开发者来说相当方便。我们再也无需去焦头烂额的寻找whl包,直接通过pip就可以在线安装(前提是有网络+pip版本合适的情况下)可见pip的版本更新是相当重要的,今天小编就来教大家怎么升级pip1.我们首先来看看pip的...

weixin_39940714的博客 427

升级pip指令

使用pip指令报错如何升级pip

weixin_44747103的博客 8940
上一篇: 2021机器学习面试必考100题最新汇总(附答案详解)
下一篇: 应用上云 2 小时烧掉近 50 万,创始人:差点破产,简直噩梦
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值