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

运行Anaconda脚本sudo报错:sudo: no tty present and no askpass program specified

解决sudo执行Anaconda时出现sudo: no tty present and no askpass program specified的问题

嘿,我来帮你拆解这个报错的核心原因,其实是两个关键问题叠加导致的:

1. sudoers规则顺序错误,NOPASSWD规则根本没生效

sudoers的规则是从上到下匹配,第一个符合条件的规则就会被执行。你当前的sudoers配置里,先写了这条:

my_user ALL=(ALL) ALL

这条规则要求你执行任何sudo命令都必须输入密码,而后面的NOPASSWD规则因为前面已经匹配到了要求密码的规则,直接被忽略,完全不会生效。

2. 命令路径不匹配,NOPASSWD规则就算生效也没用

你实际执行的命令是:

sudo /Users/me/anaconda3/bin/python myScript.py

但你在sudoers里写的NOPASSWD规则路径是/Users/orenkobo/anaconda3/bin/python——路径里的用户名是orenkobo,和你实际使用的me不匹配,这条规则根本匹配不上你的命令,等于白配置了。


快速解决步骤

  1. 必须用visudo命令编辑sudoers(这个命令会自动检查语法错误,避免你因写错规则把自己锁在系统外),打开后调整规则顺序,把NOPASSWD规则放在最前面:

    # User privilege specification
    root ALL=(ALL) ALL
    # 如果你想让所有sudo命令都免密,用这条
    my_user ALL=(ALL) NOPASSWD: ALL
    my_user ALL=(ALL) ALL
    %admin ALL=(ALL) ALL
    

    (如果只想让Anaconda的Python免密,就把my_user ALL=(ALL) NOPASSWD: /Users/me/anaconda3/bin/python放在my_user ALL=(ALL) ALL前面,务必保证路径和你实际的完全一致)

  2. 保存退出后,再执行你的命令试试,报错应该就消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:28:28