当我尝试运行我的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查找共享文件的默认位置是什么?当我在许多系统上多次安装水蟒时,怎么会突然发生这种情况?我知道这些问题很多,但我希望他们能给我答案,让我理解这个问题,而不是盲目地追随其他马虎的帖子。
谢谢
1条答案
按热度按时间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.
see Permanently add a directory to PYTHONPATH?