Ubuntu 20.04部署Spinnaker Python SDK(PySpin)时共享库缺失求助
问题重现
在Ubuntu系统使用Python 3.10,按指引安装numpy、matplotlib并通过pip部署PySpin wheel包后,执行官方示例脚本时出现以下报错:
Traceback (most recent call last):
File ".../AcquireAndDisplay/main.py", line 32, in
import PySpin
File ".../AcquireAndDisplay/.venv/lib/python3.10/site-packages/PySpin.py", line 15, in
import _PySpin
ImportError: libSpinnaker.so.4: cannot open shared object file: No such file or directory.
解决步骤
安装Spinnaker SDK本体
PySpin的wheel包仅为Python绑定层,底层依赖官方Spinnaker SDK提供的共享库。需下载对应Ubuntu版本的SDK安装包(通常为.deb格式),执行以下命令完成安装:sudo dpkg -i spinnaker-[具体版本号]-amd64.deb sudo apt-get install -f # 自动修复依赖缺失问题定位共享库文件
安装SDK后,用以下命令搜索libSpinnaker.so.4的具体路径:find / -name "libSpinnaker.so.4" 2>/dev/null常见路径为
/usr/lib或/usr/local/lib/spinnaker。配置共享库系统变量
- 临时生效:在激活虚拟环境的终端中执行(替换为实际找到的库目录):
配置完成后重新运行示例脚本即可。export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/library/directory - 永久生效:创建专属配置文件并刷新系统缓存:
在文件中添加库目录路径,保存退出后执行:sudo nano /etc/ld.so.conf.d/spinnaker.confsudo ldconfig
- 临时生效:在激活虚拟环境的终端中执行(替换为实际找到的库目录):
验证PySpin与SDK版本匹配
PySpin wheel版本必须和Spinnaker SDK版本严格对应(例如SDK为4.x系列,wheel也需为4.x版本)。若版本不兼容,先卸载现有PySpin:pip uninstall PySpin再安装对应SDK版本的wheel包。
虚拟环境兼容性检查
确保虚拟环境能继承系统的共享库路径,上述永久配置方式会让虚拟环境自动识别库文件;临时配置则需在激活虚拟环境后执行。
内容的提问来源于stack exchange,提问作者seshquack

