OSX下创建virtualenv虚拟环境遇ImportError错误,求解决方向
解决OSX bash中virtualenv创建环境时的ImportError: cannot import name requests问题
问题根源
你遇到的这个报错,本质是Anaconda环境下的旧版virtualenv自带的pip包(19.1.1版本)和系统/Anaconda中的requests模块存在依赖冲突,或者自带的pip包本身损坏。因为virtualenv创建环境时,会优先从virtualenv_support目录加载自带的pip、setuptools等工具,而这里面的requests导入逻辑出了问题。加上Python2.7已经停止维护,旧版本工具的兼容性问题更容易爆发。
分步解决方案
按优先级尝试以下步骤:
升级virtualenv到Python2.7兼容的最新版本
Python2.7最后支持的virtualenv版本是20.24.7,升级它会更新自带的pip、setuptools版本,大概率解决依赖冲突:pip install --upgrade virtualenv==20.24.7升级完成后再重新执行
virtualenv venv试试。创建环境时禁用virtualenv自带的包,强制下载最新兼容版本
如果升级virtualenv没用,试试让virtualenv不使用本地自带的工具包,而是从网络下载适配的版本:virtualenv --no-download venv修复Anaconda环境中的requests和virtualenv
可能你的Anaconda环境里的requests模块或virtualenv本身已经损坏,尝试卸载重装:# 卸载并重装Python2.7兼容的requests版本 pip uninstall -y requests && pip install requests==2.27.1 # 卸载并重装virtualenv pip uninstall -y virtualenv && pip install virtualenv==20.24.7改用Anaconda自带的conda创建虚拟环境(备选方案)
既然你已经在用Anaconda,直接用conda来管理虚拟环境可能更适配,避开virtualenv的问题:# 创建Python2.7的虚拟环境 conda create -n venv python=2.7 # 激活环境(bash中) source activate venv
内容的提问来源于stack exchange,提问作者rainbowsorbet
相关产品推荐
相关产品推荐

