ImportError:libpython3.8.so.1.0:无法打开共享对象文件:没有此类文件或目录

w8f9ii69  于 2022-10-05  发布在  Python
关注(0)|答案(1)|浏览(1082)

当我尝试运行我的Python项目时,在某些情况下,我收到以下错误:

File "/usr/local/bin/AAA/camera_service/camera_service_main.py", line 6, in <module>
    from views.hires_camera_handler_view import hires_camera_handler_blueprint
  File "/usr/local/bin/AAA/camera_service/views/hires_camera_handler_view.py", line 7, in <module>
    from hires_camera_handler.hires_camera_handler import HiResCameraHandler
  File "/usr/local/bin/AAA/camera_service/hires_camera_handler/hires_camera_handler.py", line 3, in <module>
    from ids_peak import ids_peak
  File "/home/izx/anaconda3/envs/py38/lib/python3.8/site-packages/ids_peak/ids_peak.py", line 18, in <module>
    from . import _ids_peak_python_interface
ImportError: libpython3.8.so.1.0: cannot open shared object file: No such file or directory

目标文件位于~/anaconda3/envs/py38/lib中

我可以通过添加EXPORT LD_LIBRARY_PATH=~/anaconda3/envs/py38/lib使代码在我的终端上运行

然而,这里似乎有一个更深层次的问题,因为我的许多项目的表现都与其他安装的ubuntu不同。我当然可以重新安装ubuntu。但我想知道我在这里做错了什么。

此外,上面的解决方案也不能解决问题。我仍然不能在PyCharm中运行我的测试,这将是非常有益的。也许我可以在我的pycharm运行中以某种方式设置这个值,但是,设置PATH变量不起作用,我不知道该怎么做。

我已经尝试了各种解决方案。安装libpython3.8(已经安装),安装libpython3.8-dev(在ubuntu 22.04 JAMMY上不可用)。我也为bashrc添加了值,但不出所料,这并不能解决PyCharm的问题。

有没有人能给我解释一下到底是什么问题?为什么我的conda环境找不到自己的lib文件夹?为什么将路径添加到LD_LIBRARY_PATH会起作用?我的Conda环境在得到自己的共享文件时需要共享文件,这对我来说毫无意义。Conda查找共享文件的默认位置是什么?当我在许多系统上多次安装水蟒时,怎么会突然发生这种情况?我知道这些问题很多,但我希望他们能给我答案,让我理解这个问题,而不是盲目地追随其他马虎的帖子。

谢谢

qlvxas9a

qlvxas9a1#

It is always worth reading the docs from anaconda: https://docs.conda.io/projects/conda-build/en/latest/resources/use-shared-libraries.html#shared-libraries-in-macos-and-linux

You have to tell python where to find the additional modules by setting the PYTHONPATH in ~/.bashrc; Make sure to reload / restart the terminal or your IDE after updating ~/.bashrc

e.g.

export PYTHONPATH="${PYTHONPATH}:/Users/<myuser>/project_root_folder_path"

see Permanently add a directory to PYTHONPATH?

相关问题