PyCharm远程自定义Python解释器添加OpenVINO初始化卡住及cv2导入错误
问题根因
setupvars.sh执行时会向标准输出打印初始化日志,PyCharm调用自定义解释器时会读取标准输出解析版本信息,非结构化日志会导致解析逻辑卡住。- 手动配置的OpenVINO环境变量和
setupvars.sh自动生成的变量存在路径顺序冲突,动态库加载时优先加载了版本不匹配的依赖,触发符号未定义报错。
解决方案
第一步:修改
mypython启动脚本
删除脚本中注释为「为使OpenVINO适配PyCharm远程解释器所做的配置尝试」下方所有手动添加的OpenVINO相关export语句,在原有CUDA、FFmpeg、PyTorch相关环境变量配置之后,添加屏蔽输出的OpenVINO环境加载命令,改完的脚本参考如下:#!/bin/bash -l export PATH="/home/ubuntu/.local/bin:/usr/local/cuda-11.1/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:${PATH}" export LD_LIBRARY_PATH="/home/ubuntu/.local/lib:/usr/local/cuda-11.1/lib64:/home/ubuntu/.local/lib:/usr/local/cuda-11.1/lib64:${LD_LIBRARY_PATH}" export PYTHONPATH="/home/ubuntu/VideoProcessingFramework/install/bin:${PYTHONPATH}" export PATH="/home/ubuntu/FFmpeg/build_x64_release_shared/bin:${PATH}" export LD_LIBRARY_PATH="/home/ubuntu/VideoProcessingFramework/install/bin:${LD_LIBRARY_PATH}" export LD_LIBRARY_PATH="/home/ubuntu/FFmpeg/build_x64_release_shared/lib:${LD_LIBRARY_PATH}" export PATH="/home/ubuntu/pytorch/build/bin:${PATH}" export LD_LIBRARY_PATH="/home/ubuntu/pytorch/build/lib:${LD_LIBRARY_PATH}" # 加载OpenVINO环境变量,屏蔽输出避免干扰PyCharm解析 source /opt/intel/openvino_2021.1.110/bin/setupvars.sh > /dev/null 2>&1 /usr/bin/python3 "$@"补充:如果SSH会话中执行
which python3得到的路径不是/usr/bin/python3,请将脚本最后一行的Python路径替换为实际查询到的路径,避免版本不一致问题。第二步:验证脚本有效性
SSH登录远程服务器,进入mypython所在目录执行如下命令确认配置正确:chmod +x mypython ./mypython -c "import cv2; print('cv2导入成功,版本:', cv2.__version__)"无报错且正常输出版本信息即为配置正确。
第三步:刷新PyCharm配置
打开PyCharm的远程解释器设置页,找到对应的自定义解释器,点击刷新按钮,之后重启Python控制台或运行任务即可。可选调试方案:如果仍存在导入错误,可在
source命令后添加如下语句,对比SSH直接运行和PyCharm运行的路径差异定位冲突:echo $LD_LIBRARY_PATH > /tmp/openvino_ld_path.log分别触发两种运行方式后查看日志文件的内容差异即可排查问题。
内容的提问来源于stack exchange,提问作者user1315621
相关产品推荐
相关产品推荐

