当前位置:   article > 正文

note: This error originates from a subprocess, and is likely not a problem with pip.解决方案_vllm安装 note: this error originates from a subproce

vllm安装 note: this error originates from a subprocess, and is likely no

问题定义

  • 问题描述:在安装一些python包的时候,出现找不到名为packaging的模块的问题。给了一个note:This error originates from a subprocess, and is likely not a problem with pip.具体情况见如下:
    在这里插入图片描述
    在这里插入图片描述
  • 环境和条件:问题发生在生产环境中,应用程序部署在Linux服务器上。具体的项目为基于深度学习的图像压缩

问题分析

  • 初步分析:就报错信息而言,ModuleNotFoundError: No module named ‘packaging’:这是主要的错误,因为找不到名为packaging的模块而失败。按常规解决方案,pip install packaging就能够解决。但最后该装的东西还是没有装好。

  • 进一步分析:看到这一句信息:
    在这里插入图片描述
    这句话提供了对遇到的错误的一个重要线索,说明错误发生在pip调用的一个子进程中,而不是pip本身的直接问题。

  • 错误来源:pip在执行某些操作时,常常需要调用子进程执行具体的任务,比如编译代码、运行安装脚本等。这里的错误是在这样一个子进程中发生的,而不是pip自身的代码中。

  • 解决办法:经过网络搜索求助,大多都解释说由于某些库的版本不兼容导致的,按照他们的解决策略,最终也未能解决。

问题解决

在某篇博客中看到,加入–no-build-isolation选项有用(具体是那一篇忘记了)。
原命令为:pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
加上:pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --global-option="--cpp_ext" --global-option="--cuda_ext" ./

分析:

  • –no-build-isolation选项的作用
    –no-build-isolation选项禁用了pip的构建隔离特性。默认情况下,当pip尝试安装一个包含pyproject.toml文件的包时,它会创建一个隔离的环境来构建这个包。这个隔离环境确保了构建过程中使用的依赖与项目其他部分的依赖隔离开来,从而减少了版本冲突的可能性。
    当使用–no-build-isolation时,pip将不会创建这个隔离环境,而是直接在当前环境中构建包。这意味着它会使用当前环境中已安装的依赖来执行构建过程。

  • 为什么加入–no-build-isolation后问题解决
    问题的根源在于构建过程中需要的某些依赖(如packaging模块)在隔离的构建环境中不可用。当禁用了构建隔离,构建过程就能访问到当前环境中已经安装的所有依赖,包括packaging模块,从而解决了之前的构建失败问题。

注意

以上解决方案,并不适用这种报错的所有情况。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/887002
推荐阅读
相关标签
  

闽ICP备14008679号