解决PyG (PyTorch Geometric)库安装以及import时sklearn报错等问题

解决PyG (PyTorch Geometric)库安装以及import时sklearn报错等问题

2021-3-26 By Junwu Chen at CAS IPE, Beijing

1.安装pytorch

由于我们组服务器的linux系统版本太老,glibc版本低于2.17且没有root权限,所以我通过conda的方法安装pytorch(安装PyG前需要先安装torch)。conda安装pytorch的方法可以见我的博文

2. 安装PyG

安装方法可见官方手册
如我输入的安装命令为:

pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.6.0+cpu.html
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.6.0+cpu.html
pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.6.0+cpu.html
pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.6.0+cpu.html
pip install torch-geometric

但是在最后一步(安装torch-geometric)时会报错,原因是其所依赖的numba库安装不上,我的解决方法是采用conda安装numba:

conda install numba

但是安装好后,在import torch_geometric时会报错:

Traceback (most recent call last):
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 44, in <module>
    from ._check_build import check_build  # noqa
ImportError: dlopen: cannot load any more object with static TLS

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/torch_geometric/__init__.py", line 2, in <module>
    import torch_geometric.nn
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/torch_geometric/nn/__init__.py", line 10, in <module>
    from .models import *  # noqa
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/torch_geometric/nn/models/__init__.py", line 2, in <module>
    from .node2vec import Node2Vec
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/torch_geometric/nn/models/node2vec.py", line 5, in <module>
    from sklearn.linear_model import LogisticRegression
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/sklearn/__init__.py", line 81, in <module>
    from . import __check_build  # noqa: F401
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 46, in <module>
    raise_build_error(e)
  File "/home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 41, in raise_build_error
    %s""" % (e, local_dir, ''.join(dir_content).strip(), msg))
ImportError: dlopen: cannot load any more object with static TLS
___________________________________________________________________________
Contents of /home/jwchen/software/miniconda3/envs/pyg/lib/python3.6/site-packages/sklearn/__check_build:
__init__.py               __pycache__               _check_build.cpython-36m-x86_64-linux-gnu.so
setup.py
___________________________________________________________________________
It seems that scikit-learn has not been built correctly.

If you have installed scikit-learn from source, please do not forget
to build the package before using it: run `python setup.py install` or
`make` in the source directory.

If you have used an installer, please check that it is suited for your
Python version, your operating system and your platform.

这原因主要来自sklearn库的问题。

解决方法1:

安装低版本的sklearn

pip uninstall scikit-learn torch-geometric
pip install scikit-learn==0.20.3
pip install torch-geometric
解决方法2:

conda安装sklearn

pip uninstall scikit-learn torch-geometric
conda install scikit-learn
pip install torch-geometric
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值