pip安装指定包,找不到如何解决?

在配置神经网络环境时,经常遇到pip无法找到所需版本包的问题。对于open3d0.15.1版本,直接使用pip安装失败。文章介绍了几种下载和安装指定版本包的方法,包括使用源码、whl文件,特别是详细讲解了如何找到和修改whl文件名以适应不同Python环境。此外,还提供了通过pipdebug命令查找兼容标签来解决版本不匹配的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:现如今,在跑神经网络的时候,需要配置一些开源项目从而需要指定一些特定环境是必不可少的一个步骤,但是很多时候使用pip安装包的时候,总是找不到需要的版本。比如,今天需要配置open3d 0.15.1版本的环境,但是直接使用pip install open3d== 0.15.1固定版本下载不好使(conda install open3d == 0.15.1一样),pip显示只搜索到了如下图几个版本,甚至不同系统搜索到的可安装版本都不一样,原因未知!(pip搜索可以安装的版本可以使用 pip install open3d== 语句,原理是故意让pip报错,然后列出可以安装的版本)。
在这里插入图片描述
但是open3d的官网显示最新的版本都到了0.17.0了。
现在总结一下,常用的几种下载指定包的手段。(重点是最后一个方法!)

下载安装包常规的几种思路

以open3d为例

1.指定版本下载

pip install open3d==0.15.1

2.下载包的对应官网源码,离线安装

比如去open3d里,下载0.15.1的版本,然后放在需要配置的环境,使用源码安装的方式安装。
在这里插入图片描述

3.whl文件安装

pip官网有对应包各种历史版本的包,找到对应版本的whl文件然后安装即可。

whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装。
安装方法很简单,进入命令行输入
pip install xxxx.whl

3.1 如何找到所需要包对应版本的whl?

以open3d 0.15.1版本为例。

3.1.1 首先进入pip官网

在这里插入图片描述

3.1.2 在搜索栏,搜索open3d的包,然后点击进入寻找所需要的版本

在这里插入图片描述
注意,搜索出来的,只显示open3d的最新版本,如图,想要找低版本的open3d需要进去切换,如图。
在这里插入图片描述

3.1.3 切换版本后,选择对应的平台,然后下载whl文件,放入对应环境pip install xx.whl安装即可。

在这里插入图片描述

3.2 选与自己python版本匹配的whl文件,比如python3.7就是对应cp37

参考文章:https://blog.csdn.net/happywlg123/article/details/107281936

在安装whl时,如果报错(is not a supported wheel on this platform),那就是下载的whl文件名称命名与pip能安装的whl不匹配造成的原因,那么可以按照如下方案解决。注意:这么做即使可以成功安装上,但是代码不一定能成功跑起来。因为whl的名字代表了支持的平台,换了名字在另外的平台上安装之后,就不一定能够跑
因此,特别要注意:==如果网站上包的名称没有对应的,下载最接近的名称,安装后成功使用的概率就会很大。 ==

解决办法:
直接在命令行中输入:pip debug --verbose
输入这个命令后,会输出大量信息:

pip version: pip 20.1.1 from /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip (python 3.7)
sys.version: 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0]
sys.executable: /home/pi/Softwares/venv3/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
name: cpython
‘cert’ config value: global
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
appdirs1.4.3
CacheControl0.12.6
colorama0.4.3
contextlib20.6.0.post1 (Unable to locate actual module version, using vendor.txt specified version)
distlib0.3.0
distro1.5.0 (Unable to locate actual module version, using vendor.txt specified version)
html5lib1.0.1
ipaddress1.0.23
msgpack1.0.0 (Unable to locate actual module version, using vendor.txt specified version)
packaging20.3
pep5170.8.2
progress1.5
pyparsing2.4.7
requests2.23.0
certifi2020.04.05.1
chardet3.0.4
idna2.9
urllib31.25.8
resolvelib0.3.0
retrying1.3.3 (Unable to locate actual module version, using vendor.txt specified version)
setuptools44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
six1.14.0
toml0.10.0
webencodings0.5.1 (Unable to locate actual module version, using vendor.txt specified version)
Compatible tags: 44
cp37-cp37m-manylinux2014_armv7l
cp37-cp37m-linux_armv7l
cp37-abi3-manylinux2014_armv7l
cp37-abi3-linux_armv7l
cp37-none-manylinux2014_armv7l
cp37-none-linux_armv7l
cp36-abi3-manylinux2014_armv7l
cp36-abi3-linux_armv7l
cp35-abi3-manylinux2014_armv7l
cp35-abi3-linux_armv7l
cp34-abi3-manylinux2014_armv7l
cp34-abi3-linux_armv7l
cp33-abi3-manylinux2014_armv7l
cp33-abi3-linux_armv7l
cp32-abi3-manylinux2014_armv7l
cp32-abi3-linux_armv7l
py37-none-manylinux2014_armv7l
py37-none-linux_armv7l
py3-none-manylinux2014_armv7l
py3-none-linux_armv7l
py36-none-manylinux2014_armv7l
py36-none-linux_armv7l
py35-none-manylinux2014_armv7l
py35-none-linux_armv7l
py34-none-manylinux2014_armv7l
py34-none-linux_armv7l
py33-none-manylinux2014_armv7l
py33-none-linux_armv7l
py32-none-manylinux2014_armv7l
py32-none-linux_armv7l
py31-none-manylinux2014_armv7l
py31-none-linux_armv7l
py30-none-manylinux2014_armv7l
py30-none-linux_armv7l
cp37-none-any
py37-none-any
py3-none-any
py36-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any

从中我们可以看到Compatible tags字样,这些就是当前Python版本可以适配的标签。例如,我的Python版本是3.7.3,可以匹配下面这些文件名:

Compatible tags: 44
cp37-cp37m-manylinux2014_armv7l
cp37-cp37m-linux_armv7l
cp37-abi3-manylinux2014_armv7l
cp37-abi3-linux_armv7l
cp37-none-manylinux2014_armv7l
cp37-none-linux_armv7l
cp36-abi3-manylinux2014_armv7l
cp36-abi3-linux_armv7l
cp35-abi3-manylinux2014_armv7l
cp35-abi3-linux_armv7l
cp34-abi3-manylinux2014_armv7l
cp34-abi3-linux_armv7l
cp33-abi3-manylinux2014_armv7l
cp33-abi3-linux_armv7l
cp32-abi3-manylinux2014_armv7l
cp32-abi3-linux_armv7l
py37-none-manylinux2014_armv7l
py37-none-linux_armv7l
py3-none-manylinux2014_armv7l
py3-none-linux_armv7l
py36-none-manylinux2014_armv7l
py36-none-linux_armv7l
py35-none-manylinux2014_armv7l
py35-none-linux_armv7l
py34-none-manylinux2014_armv7l
py34-none-linux_armv7l
py33-none-manylinux2014_armv7l
py33-none-linux_armv7l
py32-none-manylinux2014_armv7l
py32-none-linux_armv7l
py31-none-manylinux2014_armv7l
py31-none-linux_armv7l
py30-none-manylinux2014_armv7l
py30-none-linux_armv7l
cp37-none-any
py37-none-any
py3-none-any
py36-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any

综上,把xx.whl文件,改成上述其中某个可以匹配的文件名即可。

例如:open3d-0.15.1-cp39-cp39-manylinux2014_aarch64.whl改为open3d-0.15.1-cp37-cp37m-manylinux2014_armv7l.whl即可

<think>好的,用户说在Ubuntu上安装了Python但不到pip,我需要帮他们解决这个问题。首先,我得回想一下Ubuntu的Python安装机制。可能的情况是用户只安装了Python本身,但没安装pip,因为有些Ubuntu版本默认不pip。 接下来,我应该考虑用户安装的是Python 2还是Python 3。因为从Ubuntu 20.04开始,Python 2已经不再默认安装,所以用户可能用的是Python 3。不过,为了全面,应该覆盖两个版本的情况。比如,Python 3的pip通常叫pip3,而Python 2的是pip。但用户可能直接输入pip不到命令。 然后,需要检查系统是否安装pip。常见的做法是让用户在终端运行pip --version或pip3 --version,看是否有输出。如果没有,说明确实没安装。这时候需要指导用户如何安装。 接下来,安装pip的方法是通过get-pip.py脚本,或者使用apt管理器。对于Ubuntu,推荐使用apt,因为更简单。需要告诉用户运行sudo apt install python3-pip安装Python3的pip。如果是Python2,可能需要添加universe仓库,然后安装python-pip,但要注意Python2已经过时,可能不安全。 另外,用户可能会遇到安装pip命令仍然不到的情况,这可能是因为路径没配置好。这时候可以建议用户检查是否/usr/local/bin或~/.local/bin在PATH环境变量中,或者尝试用pip3命令代替pip。 还要提醒用户验证安装后的pip版本,用pip3 --version确认是否正确安装。同时,可以建议他们升级pip到最新版,使用pip3 install --upgrade pip。 最后,总结可能的问题和解决方案,确保用户能够一步步排查并解决问题。可能还需要提到虚拟环境的情况,但如果是系统级安装,可能暂时不需要涉及。保持回答结构清晰,分步骤说明,这样用户更容易跟进。</think>在Ubuntu系统中出现“安装了Python但不到pip”的问题,通常有以下几种原因及解决方案: --- ### 步骤1:确认Python是否安装 1. 打开终端(`Ctrl+Alt+T`) 2. 输入命令验证Python版本: ```bash python3 --version ``` 如果返回类似 `Python 3.x.x` 的版本号,说明Python已安装。 **注意**:Ubuntu默认使用 `python3` 命令调用Python 3.x版本。 --- ### 步骤2:检查pip是否已存在 1. 尝试直接调用pip: ```bash pip --version ``` 或针对Python 3的pip: ```bash pip3 --version ``` - 如果显示版本号(如 `pip 23.x.x`),说明pip安装但可能未添加到环境变量。 - 如果提示 `command not found`,继续下一步。 --- ### 步骤3:安装pip #### 方法1:通过官方脚本安装(推荐) 1. 安装依赖: ```bash sudo apt update sudo apt install curl python3-distutils ``` 2. 下载并运行官方安装脚本: ```bash curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py ``` #### 方法2:通过apt安装 1. 直接安装Python 3的pip: ```bash sudo apt install python3-pip ``` --- ### 步骤4:验证安装 1. 检查pip版本: ```bash pip3 --version ``` 正常输出示例: ```text pip 23.1.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10) ``` --- ### 常见问题排查 #### 问题1:安装后仍提示 `command not found` - **原因**:pip安装路径未添加到系统环境变量 `PATH` - **解决**: 1. pip安装路径: ```bash which pip3 ``` 2. 如果路径是 `~/.local/bin`,将其添加到环境变量: ```bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` #### 问题2:安装旧版Python导致冲突 - **解决**:明确指定Python版本: ```bash sudo apt remove python3-pip # 卸载旧版本 sudo apt autoremove sudo apt install python3-pip --reinstall ``` --- ### 总结流程 $$ \begin{aligned} 1.&\ \text{确认Python 3已安装} \\ 2.&\ \text{尝试通过}\ \texttt{pip3}\ \text{调用} \\ 3.&\ \text{未到则运行}\ \texttt{sudo apt install python3-pip} \\ 4.&\ \text{验证路径并更新环境变量} \end{aligned} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值