macOS创建virtualenv环境报错:IOError: [Errno 1] Operation not permitted: '/bin/easy_install'
解决macOS下virtualenv创建Python2.7环境的权限与路径问题
我之前在macOS上折腾多版本Python时,碰到过几乎一模一样的报错,给你几个亲测有效的解决思路:
核心问题:别用sudo创建虚拟环境!
你报错里的IOError: [Errno 1] Operation not permitted: '/bin/easy_install'是关键——macOS的/bin目录受系统完整性保护(SIP),即使用sudo也不能随便修改。而你用sudo执行virtualenv时,它会试图把easy_install这类工具链接到系统级目录,直接触发权限拦截。
第一步:清理残留文件,重新创建环境
先删掉之前用sudo创建的错误环境:
rm -rf /Users/bo3423/git/My-Project/ENV
然后完全不用sudo,直接用普通用户身份执行:
virtualenv ENV --python=python2.7
修复pip缓存权限问题
报错里提到的缓存目录权限问题,是因为之前用sudo跑过pip,导致缓存目录归属变成了root。执行下面的命令把权限改回当前用户:
sudo chown -R $USER:staff ~/Library/Caches/pip
避免Python版本冲突
因为你同时装了Python2和3,很容易出现调用错virtualenv版本的情况。建议直接用Python2.7自带的pip来安装并调用virtualenv,确保环境完全隔离:
- 先安装Python2.7版本的virtualenv:
python2.7 -m pip install --user virtualenv
- 用这个版本的virtualenv创建环境:
python2.7 -m virtualenv ENV
额外建议:用pyenv管理多版本Python
如果经常要切换Python版本,推荐用pyenv来统一管理,它能帮你彻底隔离不同版本的Python环境,避免各种路径和权限问题。安装后你可以直接指定版本创建虚拟环境:
pyenv local 2.7.18 virtualenv ENV
内容的提问来源于stack exchange,提问作者rocksnslopes
相关产品推荐
相关产品推荐

