You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装MobSF时执行pip install -r requirements.txt耗时过长求助

问题

在Linux(WSL)命令行中安装MobSF时,执行pip install -r requirements.txt命令,每个包都需要花费大量时间确定与其他依赖兼容的版本。当前pip版本为22.0.2,requirements.txt内容如下:

Django>=3.1.5
lxml>=4.6.2
rsa>=4.7
biplist>=1.0.3
requests>=2.25.1
bs4>=0.0.1
colorlog>=4.7.2
macholib>=1.14
whitenoise>=5.2.0
waitress>=1.4.4;platform_system=='Windows'
gunicorn>=20.0.4;platform_system!='Windows'
psutil>=5.8.0
shelljob>=0.6.2
asn1crypto>=1.4.0
oscrypto>=1.2.1
distro>=1.5.0
IP2Location==8.9.0
lief>=0.12.1
http-tools>=2.1.1
libsast>=1.5.1
pdfkit>=0.6.1
google-play-scraper>=0.1.2
androguard==3.4.0a1
apkid==2.1.4
quark-engine==22.10.1
frida==15.2.2
tldextract==3.4.0
openstep-parser==1.5.4
svgutils==0.3.4
# For semgrep & mitmproxy
ruamel.yaml==0.16.13 # pyup: ignore
click==8.0.1 # pyup: ignore
decorator==4.4.2 # pyup: ignore

原因分析

  • pip 22.0.2的依赖解析器效率不足:旧版本pip处理大量带宽泛版本约束(如>=)的依赖时,会采用穷举式兼容性检查逻辑,当多个包的版本范围存在交叉依赖时,会大幅增加计算耗时。
  • requirements.txt混合了宽泛约束与固定版本:文件中既有大量>=形式的宽松版本要求,又存在多个固定版本的包(如IP2Location==8.9.0、androguard==3.4.0a1),这种混合会让解析器需要在海量版本组合中寻找兼容解。
  • 包含预发布版本包:androguard==3.4.0a1属于预发布版本,这类包的依赖处理逻辑更复杂,进一步增加了解析器的计算负担。

解决方法

  • 升级pip到最新版本:新版本pip(23.x及以上)优化了依赖解析算法,能显著提升兼容性检查速度,执行命令:
    pip install --upgrade pip
    
  • 临时使用旧版解析器:如果暂时不想升级pip,可以切换回旧的legacy resolver,虽然可能存在少量兼容性风险,但速度更快:
    pip install -r requirements.txt --use-deprecated=legacy-resolver
    
  • 替换宽泛版本约束为固定版本:参考MobSF官方发布的稳定依赖版本(如项目仓库中的requirements.lock文件),将部分>=形式的约束改为具体版本,缩小解析器的搜索范围。
  • 改用国内PyPI镜像源:网络延迟会拖慢包版本信息的查询速度,使用国内镜像源可以加速下载和版本检查,示例命令:
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 使用虚拟环境隔离依赖:避免当前环境中无关包干扰依赖解析,创建并激活虚拟环境后再执行安装:
    python -m venv mobsf-env
    source mobsf-env/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    

内容的提问来源于stack exchange,提问作者up10388

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:02:52