Python 3.9.7环境导入torch_geometric出现OSError问题求助
解决PyTorch Geometric导入时的OSError问题
错误根源
你的conda环境使用Python 3.9,但安装的pyg-lib等PyG依赖包是基于Python 3.10编译的,导致动态链接库libpyg.so启动时尝试寻找Python 3.10的框架文件,而该文件在你的环境中不存在。
解决方案
方法一:重新安装匹配版本的PyG依赖(推荐)
- 卸载已安装的相关包:
pip uninstall -y pyg-lib torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric
- 清理pip缓存(避免残留旧版本安装包):
pip cache purge
- 安装与当前Torch和Python版本完全匹配的预编译包:
你之前使用的是Torch 1.13.1,但指定的是torch-1.13.0+cpu的索引链接,版本不匹配也会引发问题,执行以下命令:
pip install pyg-lib torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.13.1+cpu.html
方法二:切换到Python 3.10环境
如果可以接受Python版本切换,直接创建Python 3.10的conda环境重新安装:
conda create --name playbook-py310 python=3.10 --no-default-packages conda activate playbook-py310 pip install torch==1.13.1 torchvision==0.14.1 pip install pyg-lib torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.13.1+cpu.html
方法三:手动修改动态链接库路径(进阶用户)
仅适合熟悉macOS动态链接机制的用户,通过install_name_tool修改libpyg.so的依赖路径:
- 获取当前conda环境的Python库路径:
echo $CONDA_PREFIX/lib/libpython3.9.dylib
- 修改
libpyg.so的依赖指向:
install_name_tool -change /usr/local/opt/python@3.10/Frameworks/Python.framework/Versions/3.10/Python $CONDA_PREFIX/lib/libpython3.9.dylib $CONDA_PREFIX/lib/python3.9/site-packages/libpyg.so
该方法可能引发其他依赖兼容问题,仅作为备选方案。
内容的提问来源于stack exchange,提问作者Pablo Sanchez
相关产品推荐
相关产品推荐

