Mac zsh环境执行mkvirtualenv提示command not found报错如何解决
根因说明
virtualenvwrapper默认调用系统自带的Python2.7执行,而你将virtualenvwrapper模块安装到了Python3环境下,因此触发模块找不到的报错- 你的
.zshrc配置中未引入virtualenvwrapper的启动脚本,因此终端识别不到mkvirtualenv等命令
修复步骤
- 先确认你的Python3和
virtualenvwrapper.sh的实际路径:- 执行
which python3,记录输出的Python3路径,例如/usr/local/bin/python3 - 执行
find ~ -name "virtualenvwrapper.sh" 2>/dev/null,记录输出的启动脚本路径,根据你当前的PATH配置,大概率是/Users/ct/Library/Python/3.8/bin/virtualenvwrapper.sh
- 执行
- 编辑
~/.zshrc文件,在文件末尾追加以下配置,路径替换为你上一步查到的对应路径:# 指定virtualenvwrapper使用的Python解释器 export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 # 指定虚拟环境统一存放目录 export WORKON_HOME=$HOME/.virtualenvs # 加载virtualenvwrapper启动脚本 source /Users/ct/Library/Python/3.8/bin/virtualenvwrapper.sh - 保存文件后执行
source ~/.zshrc使配置立即生效 - 验证配置:执行
mkvirtualenv test_env,如果能正常创建名为test_env的虚拟环境即为修复成功,可执行rmvirtualenv test_env删除测试环境
注意事项
- 如果你使用pyenv切换Python版本,可将
VIRTUALENVWRAPPER_PYTHON的值替换为$(which python3),即可自动适配当前激活的Python版本 - 不要修改或给系统自带的Python2.7安装第三方包,避免出现系统权限问题或环境冲突
内容的提问来源于stack exchange,提问作者Laura Kebab
相关产品推荐
相关产品推荐

