报错:
./smart_car_camera ./smart_car_camera: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
一、
解决方法:
安装 mlocate 工具,这样才能使用 updatedb 和 locate 命令来查找文件
sudo apt-get update
sudo apt-get install mlocate
-
更新数据库并查找 libpython3.8.so.1.0
sudo updatedb
locate libpython3.8.so.1.0
我的路径
sudo updatedb locate libpython3.8.so.1.0 /home/orangepi/anaconda3/envs/ocr/lib/libpython3.8.so.1.0 /home/orangepi/anaconda3/pkgs/python-3.8.0-heaf0f07_5/lib/libpython3.8.so.1.0
- 确认 libpython3.8.so.1.0 的路径
假设 locate 命令返回了 libpython3.8.so.1.0 的路径,例如 /usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so.1.0,需要确保这个路径已添加到 LD_LIBRARY_PATH 环境变量中
- 设置 LD_LIBRARY_PATH
步骤 1: 添加库路径到 LD_LIBRARY_PATH
将找到的路径添加到 LD_LIBRARY_PATH 环境变量中:
export LD_LIBRARY_PATH=/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu:$LD_LIBRARY_PATH
找到的路径是 /home/orangepi/anaconda3/envs/ocr/lib 和 /home/orangepi/anaconda3/pkgs/python-3.8.0-heaf0f07_5/lib
export LD_LIBRARY_PATH=/home/orangepi/anaconda3/envs/ocr/lib:/home/orangepi/anaconda3/pkgs/python-3.8.0-heaf0f07_5/lib:$LD_LIBRARY_PATH
步骤 2: 检查 ldd 输出
确保 smart_car_camera 能够找到并加载 libpython3.8.so.1.0:
ldd ./smart_car_camera
步骤 3: 重新激活 Conda 环境
有时,环境变量的更改需要重新激活 Conda 环境才能生效。您可以尝试以下命令:
conda deactivate
conda activate ocr
步骤 4: 再次尝试运行 smart_car_camera
最后,再次尝试运行 smart_car_camera:
./smart_car_camera
持久化环境变量
如果希望这些环境变量的更改在每次登录时都生效,可以将 export 命令添加到你的 shell 配置文件中。对于 Bash,可以编辑 ~/.bashrc 文件:
echo 'export LD_LIBRARY_PATH=/home/orangepi/anaconda3/envs/ocr/lib:/home/orangepi/anaconda3/pkgs/python-3.8.0-heaf0f07_5/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc