Mac zsh执行pip install uvicorn[standard]报no matches found错误如何解决
报错原因
该报错是zsh shell的语法特性导致,和Python、uvicorn本身无关:
zsh默认会把命令中的[]识别为文件名通配符,会先尝试在当前目录下匹配符合uvicorn[standard]规则的文件名,匹配不到对应文件就会抛出no matches found错误,不会把参数传递给pip执行。pip install uvicorn命令不含特殊字符,不会触发zsh的通配符匹配逻辑,所以可以正常执行。
解决方法
以下三种可选方案,按使用场景选择即可:
- 方案1:给包名添加引号包裹,避免zsh解析特殊字符
执行命令:pip install 'uvicorn[standard]',单双引号都可使用。 - 方案2:对方括号添加转义符
执行命令:pip install uvicorn\[standard\],反斜杠会抵消方括号的通配符含义。 - 方案3:永久配置pip命令跳过通配符解析(适合经常安装带额外依赖包的场景)
打开zsh配置文件~/.zshrc,添加一行配置:
保存后执行alias pip='noglob pip'source ~/.zshrc使配置生效,后续所有pip命令都不需要再处理方括号的特殊语法问题。
安装完成后可以执行uvicorn --version验证安装是否成功,standard版本会额外内置websockets、httptools等性能增强依赖,功能比基础版完整。
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

