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

Linux下Python subprocess报错No such file or directory问题求助

解决Linux下subprocess执行whereis conda报错的问题

报错原因

subprocess.check_output() 默认不通过shell执行命令,你传入的字符串 'whereis conda' 会被当作一个完整的命令名(而非whereis命令加conda参数),系统找不到名为“whereis conda”的命令,因此抛出FileNotFoundError。而os.system()默认在shell环境中执行命令,所以能正常运行。

快速修复方法

有两种方式可以解决这个问题:

  • 拆分命令为参数列表:让subprocess正确识别命令和参数,无需依赖shell:
    conda_path = subprocess.check_output(['whereis', 'conda']).decode("utf-8").strip()
    
  • 开启shell执行模式:设置shell=True,让subprocess通过shell解析完整的命令字符串:
    conda_path = subprocess.check_output('whereis conda', shell=True).decode("utf-8").strip()
    
    注意:如果命令包含不可信的用户输入,shell=True可能存在注入风险,这里是固定命令,无需担心。

更可靠的conda路径获取方式

其实不需要用whereis,直接调用conda自带的命令可以精准获取base环境的安装路径,避免whereis返回多个无关路径的问题:

conda_path = subprocess.check_output(['conda', 'info', '--base']).decode("utf-8").strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:20:26