【paddle-gpu2.5版本安装踩坑记录】

paddle-gpu2.5版本安装踩坑记录:

paddlepaddle-gpu==2.5.2.post117安装不成功基本是一些软件包的版本不对造成的。以下内容为我在使用过程中遇到问题解决方法的一些记录,仅供参考。


一、环境准备

1、创建虚拟环境

conda create -n paddle_env python=YOUR_PY_VER
#进入虚拟环境  
conda activate paddle_env

2、其他环境查询

1)查看cudnn版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
# 新版本变化:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

2)#查看cuda版本则有很多种办法:
nvidia-smi
nvcc -V
cat /usr/local/cuda/version.txt

import torch
print(torch.version.cuda)
print(torch.backends.cudnn.version())

在这里插入图片描述

我的cuda版本是11.7、cudnn版本是8.7.0


3、paddle-gpu版本的安装

根据我cuda的版本,我可以安装paddlepaddle-gpu==2.5.2.post117

在这里插入图片描述

python -m pip install paddlepaddle-gpu==2.5.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

第一次报错:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnectionPool(host=‘pypi.org’, port=443): Read timed out. (read timeout=15)”)’: /simple/paddlepaddle-gpu/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnectionPool(host=‘pypi.org’, port=443): Read timed out. (read timeout=15)”)’: /simple/paddlepaddle-gpu/
ERROR: Could not find a version that satisfies the requirement paddlepaddle-gpu2.5.2.post117 (from versions: 1.5.2.post107, 1.6.0.post107, 1.6.1.post97, 1.6.1.post107, 1.6.2.post97, 1.6.2.post107, 1.6.3.post97, 1.7.0.post97, 1.7.0.post107, 1.7.1.post97, 1.7.1.post107, 1.7.2.post97, 1.7.2.post107, 1.8.0.post97, 1.8.0.post107, 1.8.1.post97, 1.8.1.post107, 1.8.2.post97, 1.8.2.post107, 1.8.3.post97, 1.8.3.post107, 1.8.4.post97, 1.8.4.post107, 1.8.5.post97, 1.8.5.post107, 2.0.0a0, 2.0.0b0, 2.0.0rc0, 2.0.0rc1, 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.2.0rc0, 2.2.0, 2.2.1, 2.2.2, 2.3.0rc0, 2.3.0, 2.3.1, 2.3.2, 2.4.0rc0, 2.4.0, 2.4.1, 2.4.2, 2.5.0rc0, 2.5.0rc1, 2.5.0, 2.5.1, 2.5.2)
ERROR: No matching distribution found for paddlepaddle-gpu
2.5.2.post117
在这里插入图片描述
第二次报错:我随意选了一个版本后还是报错,会警告pip需要升级
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘ReadTimeoutError(“HTTPSConnectionPool(host=‘pypi.org’, port=443): Read timed out. (read timeout=15)”)’: /simple/paddlepaddle-gpu/
ERROR: Could not find a version that satisfies the requirement paddlepaddle-gpu2.5.2 (from versions: none)
ERROR: No matching distribution found for paddlepaddle-gpu
2.5.2
WARNING: There was an error checking the latest version of pip.
在这里插入图片描述
解决办法:先对pip进行升级,升级方法可参考如下链接:
升级再安装

python -m pip install paddlepaddle-gpu==2.5.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

第三次报错:ERROR: Could not find a version that satisfies the requirement protobuf>=3.20.2; platform_system != “Windows” (from paddlepaddle-gpu) (from versions: none)
ERROR: No matching distribution found for protobuf>=3.20.2; platform_system != “Windows”
在这里插入图片描述
解决方法:pip list查看protobuf的版本发现我的版本比较低,先卸载再安装,卸载后要查看一下是否卸载干净。我安装的protobuf是3.20.2版本的。

pip list 
pip uninstall protobuf
pip list 
pip install  protobuf==3.20.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

再次安装paddle后安装成功,但是验证paddle时报错。
第四次报错: ImportError: cannot import name ‘builder’ from ‘google.protobuf.internal’ (unknown location)
在这里插入图片描述

进入python环境验证paddle是否安装成功
python
import paddle 
报错如下:ImportError: cannot import name 'builder' from 'google.protobuf.internal' (unknown location)

解决方法:重新卸载protobuf重新安装后paddle验证安装成功。
第四次报错:“PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion”

进入python环境验证paddle是否安装成功
python
import paddle
paddle.utils.run_check() 
报错如下:PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.

解决方法:在conda安装好cudatoolkit之后,如果python环境的位置在xxx/anaconda3/envs/env_name的话,libcudart.so, libcudnn.so, libcudnn_*.so等文件会在xxx/anaconda3/envs/env_name/lib目录下。或者如果不是标准的conda环境的话,可以用which python命令得到python可执行文件的位置xxx/bin/python,此时这些库文件的位置在xxx/lib下。

如果你能够通过上述步骤确定libcudart.so, libcudnn.so, libcudnn_*.so等文件已经准备好,并找到这些文件的位置,把库文件所在的路径(比如xxx/lib)加入LD_LIBRARY_PATH即可。

which python

/home/wf/miniconda3/envs/env1_wf/lib/虚拟环境中没有cudnn相关的动态库,自己下载拷贝过来即可
打开官网(https://developer.nvidia.com/cuda-toolkit-archive),此处我我选择的是cuda11.7对应的cudnn-v8.9.5。然后解压此文件,将其中的include和lib目录中的内容拷贝至“/home/wf/miniconda3/envs/env1_wf/”的include和lib中,在运行代码前执行“export LD_LIBRARY_PATH=/home/wf/miniconda3/envs/env1_wf/lib/:$LD_LIBRARY_PATH”即可。
在这里插入图片描述
进入python环境验证paddle是否安装成功

python
import paddle
paddle.utils.run_check() 
报错如下:PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.

参考链接
1、https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/conda/linux-conda.html#old-version-anchor-14-%E4%B8%89%E3%80%81%E9%AA%8C%E8%AF%81%E5%AE%89%E8%A3%85
2、https://blog.youkuaiyun.com/WinterShiver/article/details/129902882

<think>好的,我现在需要回答用户关于Python 10对应的PaddlePaddle版本的问题。首先,我需要确认用户提到的Python 10具体指的是哪个版本。Python的版本命名有时会有混淆,例如Python 3.10还是Python 10(如果存在的话)。不过,根据Python的官方发布历史,Python 3.10是存在的,而Python 10这样的主版本号可能并不存在。因此,我推测用户可能指的是Python 3.10。 接下来,我需要查阅PaddlePaddle的官方文档或发布说明,看看他们支持的Python版本。通常,深度学习框架如PaddlePaddle会支持最新的Python版本,但可能存在一定的延迟。例如,当Python 3.10刚发布时,PaddlePaddle可能还没有立即适配,需要等待后续版本更新。 然后,我需要检查PaddlePaddle的官方安装指南或版本兼容性表格。例如,在PaddlePaddle的官网上,可能会有针对不同Python版本安装命令。我需要找到支持Python 3.10的PaddlePaddle版本。如果当前PaddlePaddle的最新版本已经支持Python 3.10,那么用户可以直接安装版本。如果不支持,可能需要使用较低的Python版本,或者等待PaddlePaddle的更新。 另外,我还需要考虑用户的操作系统环境,因为不同的操作系统可能对Python和PaddlePaddle的支持情况不同。例如,某些PaddlePaddle版本可能只支持Linux的特定发行版,或者需要特定的CUDA版本配合。因此,用户可能需要根据他们的系统环境选择合适的PaddlePaddle版本。 如果官方文档中没有明确提到Python 3.10的支持,我可以建议用户查看PaddlePaddle的GitHub仓库或社区论坛,看看是否有相关的讨论或问题。有时候,社区成员会分享他们成功在特定Python版本安装PaddlePaddle的经验,或者开发者会提供测试版本的支持信息。 此外,还需要提醒用户注意虚拟环境的使用。建议他们创建一个新的虚拟环境,安装指定版本的Python和PaddlePaddle,以避免与现有项目的依赖发生冲突。例如,使用conda或venv来管理环境,这样可以更灵活地测试不同版本的兼容性。 如果用户遇到安装问题,可能需要提供一些常见的解决方法,例如使用镜像源加速安装,或者安装依赖库的特定版本。例如,使用清华镜像源或百度镜像源来加快下载速度,或者安装兼容的numpy、protobuf等库的版本。 最后,我需要总结信息,给出明确的步骤和建议,确保用户能够顺利找到适合Python 3.10的PaddlePaddle版本,或者了解当前的支持情况。如果当前版本不支持,可能需要建议用户暂时使用Python 3.9或其他兼容版本,并关注PaddlePaddle的更新动态。</think>以下是关于Python 3.10与PaddlePaddle版本兼容性的详细介绍: --- ### **1. Python 3.10与PaddlePaddle的兼容性** - **截至2023年10月**,PaddlePaddle官方尚未正式宣布对 **Python 3.10** 的全面支持。 - 最新稳定版本(如PaddlePaddle 2.5.x)主要适配 **Python 3.7-3.9**。 - 若需在Python 3.10中使用PaddlePaddle,需通过源码编译或尝试预发布版本,可能存在兼容性问题。 --- ### **2. 官方推荐方案** #### **方案1:使用Python 3.9(推荐)** - 若项目无强制要求,建议降级至Python 3.9,安装PaddlePaddle最新稳定版: ```bash # 安装Python 3.9(以conda为例) conda create -n paddle_env python=3.9 conda activate paddle_env # 安装CPU版本 pip install paddlepaddle # 安装GPU版本(需CUDA 10.2/11.2等) pip install paddlepaddle-gpu ``` #### **方案2:尝试预编译开发版** - 访问PaddlePaddle GitHub仓库的[Release页面](https://github.com/PaddlePaddle/Paddle/releases),查找标注支持Python 3.10的预编译包(如存在)。 --- ### **3. 手动编译PaddlePaddle(高级用户)** 若需强制适配Python 3.10,可参考以下步骤: 1. **克隆源码**: ```bash git clone https://github.com/PaddlePaddle/Paddle.git cd Paddle ``` 2. **配置编译环境**: - 安装依赖项(CMake、CUDA等)。 3. **编译安装**: ```bash mkdir build && cd build cmake .. -DPY_VERSION=3.10 -DWITH_GPU=ON # 根据需求调整参数 make -j$(nproc) pip install python/dist/paddlepaddle-*.whl ``` **注意**:编译过程复杂,需处理依赖和版本冲突。 --- ### **4. 验证安装** 安装后运行以下代码检查兼容性: ```python import paddle print(paddle.__version__) # 输出版本paddle.utils.run_check() # 检查环境是否正常 ``` --- ### **5. 常见问题** - **报错:`ModuleNotFoundError` 或 `ABI不兼容`** - 原因:Python 3.10的C API变化导致二进制包不兼容。 - 解决:切换至Python 3.9或等待官方更新。 - **依赖库版本冲突** - 使用虚拟环境隔离依赖,避免全局安装--- ### **6. 关注官方动态** - 定期查看[PaddlePaddle官网](https://www.paddlepaddle.org.cn/)或GitHub仓库,获取最新适配信息。 --- ### **总结** - **短期建议**:优先使用Python 3.9 + PaddlePaddle 2.5.x。 - **长期方案**:关注官方对Python 3.10的适配公告。 - **高级用户**:可尝试源码编译或社区提供的非官方包。 如需进一步帮助,可参考[PaddlePaddle官方文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/install/index_cn.html)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wang151038606

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值