关于python中的OSError报错问题

发布时间 2023-03-26 15:57:44作者: 醉情梦短

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from trainer import Trainer
  File "/home/visionx/mt/qg/paragraph_nqg_max_point_gated/trainer.py", line 10, in <module>
    from model import Seq2seq
  File "/home/visionx/mt/qg/paragraph_nqg_max_point_gated/model.py", line 6, in <module>
    from torch_scatter import scatter_max
  File "/home/visionx/miniconda3/envs/qg/lib/python3.7/site-packages/torch_scatter/__init__.py", line 16, in <module>
    torch.ops.load_library(spec.origin)
  File "/home/visionx/miniconda3/envs/qg/lib/python3.7/site-packages/torch/_ops.py", line 573, in load_library
    ctypes.CDLL(path)
  File "/home/visionx/miniconda3/envs/qg/lib/python3.7/ctypes/__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
首先检查有没有安装这个库

sudo find / -name "libpython*so*"

如果没有安装,需要先安装这个   sudo apt-get install libpython3.7

之前一直报错,解决不了,在查找大量的资料后,发现两种解决方法

方法一(临时解决方法)

每次运行都需要运行一次

 export LD_LIBRARY_PATH=/home/visionx/miniconda3/envs/qg/lib

其中visionx是自己用户的名字

miniconda3是自己安装anaconda3

qg是自己虚拟环境的名字

方法二 永久解决方法

cd /usr/lib/x86_64-linux-gnu

sudo cp libpython3.10.so.1.0 libpython3.7m.so.1.0

需要输入密码才能解决