Mac安装pipenv执行exec zsh报错--completion选项不存在
报错结论
这个报错不代表pipenv安装失败,你可以正常运行pipenv shell启动虚拟环境,就说明pipenv核心功能已经安装完成、可以正常使用。报错仅影响pipenv的命令行Tab自动补全功能,和核心运行逻辑无关。
报错原因拆解
两个报错都是zsh加载pipenv自动补全配置时触发的,和pipenv本体无关:
(eval):46: command not found: complete:你写入zsh配置文件的pipenv补全逻辑,在zsh自带的补全初始化模块compinit加载之前就执行了,此时zsh还没加载complete这个补全内置命令,所以触发命令不存在的报错。Error: No such option: --completion Did you mean --python?:你参考的旧教程里的补全配置已经过时,新版本pipenv已经移除了--completion这个旧参数,旧配置调用不存在的参数就会触发这个报错。
修复方案
你可以根据自己的需求选处理方式:
- 如果不需要Tab自动补全功能:直接打开
~/.zshrc配置文件,找到里面和pipenv补全相关的行(通常是eval "$(pipenv --completion)"),删掉这行后保存,执行source ~/.zshrc,再运行exec zsh就不会再报错,pipenv所有核心功能都可以正常用。 - 如果需要保留自动补全功能:按以下步骤操作:
- 先删除
~/.zshrc里旧的pipenv补全配置行 - 安装补全依赖:执行
pip install argcomplete - 在
~/.zshrc文件末尾追加以下配置:autoload -Uz compinit compinit source <(register-python-argcomplete pipenv) - 保存退出后执行
source ~/.zshrc,重新加载zsh配置即可,此时补全功能正常,exec zsh也不会再抛错。
- 先删除
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

