gdebi安装依赖Python<3.7的deb包无法识别conda Python3.6环境怎么办
飞利浦病理SDK Conda环境安装失败解决方案
问题根因
gdebi/dpkg属于系统级包管理工具,校验deb包依赖时只会检查系统软件源中安装的python3包版本,完全不识别Conda虚拟环境内的Python版本。即便你在已激活的Conda 3.6环境中执行安装命令,包管理器的依赖校验逻辑也不会读取环境内的Python版本,因此会出现明明环境内Python版本符合要求,仍报Dependency is not satisfiable: python3 (< 3.7)的错误。
可行解决方案
你可以选择以下任意一种方案完成安装:
方案一:强制安装deb包后配置环境路径
适合需要在多个Conda环境中使用该SDK的场景
- 先正常安装不带Python前缀的系统级依赖包:
sudo gdebi -n ./pathologysdk-modules/*pixelengine*.deb sudo gdebi -n ./pathologysdk-modules/*eglrendercontext*.deb sudo gdebi -n ./pathologysdk-modules/*gles2renderbackend*.deb sudo gdebi -n ./pathologysdk-modules/*gles3renderbackend*.deb sudo gdebi -n ./pathologysdk-modules/*softwarerenderer*.deb - 对所有带Python3前缀的deb包,使用dpkg强制忽略依赖安装:
sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-pixelengine*.deb sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-eglrendercontext*.deb sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-gles2renderbackend*.deb sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-gles3renderbackend*.deb sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-softwarerenderbackend*.deb sudo dpkg -i --ignore-depends=python3 ./pathologysdk-python36-modules/*python3-softwarerendercontext*.deb - 配置Conda环境的Python路径,让环境能识别到系统路径下安装的SDK库:
先激活你创建的Python3.6环境,执行以下命令(将py36替换为你自己的环境名):
执行完成后退出并重新激活环境,运行conda activate py36 conda env config vars set PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATHpython -c "import pixelengine"验证是否导入成功即可。
方案二:直接提取deb包内文件放入Conda环境
适合仅在单个Conda环境中使用SDK、不想改动系统包配置的场景
- 先按方案一的第一步安装所有不带Python前缀的系统级依赖包。
- 对每个带Python3前缀的deb包,执行以下操作解压提取库文件:
# 创建临时解压目录 mkdir temp_sdk_deb # 解压deb包到临时目录,以pixelengine包为例,其他包替换路径即可 dpkg -x ./pathologysdk-python36-modules/*python3-pixelengine*.deb temp_sdk_deb # 将解压出的Python库复制到Conda环境的site-packages路径下,替换为你自己的环境路径 cp -r temp_sdk_deb/usr/lib/python3/dist-packages/* ~/miniconda3/envs/py36/lib/python3.6/site-packages/ # 清理临时文件 rm -rf temp_sdk_deb - 所有包处理完成后,直接在环境中执行导入测试即可,无需额外配置。
注意事项
两种方案都不会影响系统原有Python配置,方案一强制安装的deb包后续如果触发系统包管理器的依赖告警,直接忽略即可,不会影响SDK的正常使用。
内容的提问来源于stack exchange,提问作者csgroen
相关产品推荐
相关产品推荐

