subprocess.run执行huggingface-cli登录Mac正常Ubuntu报错求助
解决Ubuntu下Jupyter中
huggingface-cli找不到的问题 核心原因是Ubuntu环境中Jupyter的系统PATH未包含huggingface-cli的安装路径,或是Jupyter内核使用的Python环境与安装huggingface_hub的环境不一致,以下是几种实用解决方案:
1. 直接调用CLI完整路径(最快解决)
无需修改环境变量,用huggingface_hub自带工具自动获取CLI绝对路径:
import subprocess from huggingface_hub import get_cli_path cli_path = get_cli_path() subprocess.run([cli_path, "login", "--token", TOKEN])
也可手动查找:在Jupyter单元格执行!pip show huggingface_hub,找到Location字段,对应的CLI脚本一般在同级bin目录下(比如Location为~/.local/lib/python3.10/site-packages,CLI路径就是~/.local/bin/huggingface-cli),将路径直接填入subprocess即可。
2. 临时补全Jupyter的PATH
在执行subprocess前,把CLI所在目录加入环境变量:
import os # 替换为你的CLI实际目录,如~/.local/bin或虚拟环境的bin目录 os.environ["PATH"] += ":/home/your_username/.local/bin" subprocess.run(["huggingface-cli", "login", "--token", TOKEN])
3. 永久修复PATH(一劳永逸)
编辑Jupyter内核配置文件,将CLI路径加入默认PATH:
- 找到内核配置目录:通常为
~/.local/share/jupyter/kernels/你的内核名称/ - 打开
kernel.json,在env字段添加PATH配置:
{ "argv": ["python", "-m", "ipykernel_launcher", "-f", "{connection_file}"], "display_name": "Python 3 (your_env)", "env": { "PATH": "/home/your_username/.local/bin:$PATH", "PYTHONPATH": "" }, "language": "python" }
保存后重启Jupyter生效。
4. 确认虚拟环境一致性
若使用虚拟环境,需确保Jupyter内核绑定的是安装huggingface_hub的环境:
- 激活目标虚拟环境
- 安装ipykernel并注册内核:
pip install ipykernel python -m ipykernel install --user --name=your_env_name
- 在Jupyter中切换到新注册的内核再执行命令。
内容的提问来源于stack exchange,提问作者dami.max
相关产品推荐
相关产品推荐

