如何让pip安装到Python 3.6.4目录而非2.7?安装aiohttp遇版本报错求助
Hey there, let's tackle these two issues one by one—they're actually closely related once you dig into the root cause!
问题1:将pip安装的包定向到Python 3.6.4目录
默认情况下,系统里的pip命令通常关联到Python 2.7,这就是为什么你的包会默认装到Python 2的目录里。要指定到Python 3.6.4,这里有几个可靠的方法:
直接用Python 3.6的可执行文件调用pip:这是最稳妥的方式,绝对不会搞混环境。运行以下命令安装包:
python3.6 -m pip install [你的包名]如果系统里
python3.6命令不存在,你可以替换成Python 3.6.4的完整安装路径(比如/usr/local/bin/python3.6,具体路径取决于你的安装位置)。使用对应版本的pip命令:如果你的系统已经生成了
pip3.6命令,直接运行它即可:pip3.6 install [你的包名]可以先执行
pip3.6 --version确认关联版本,输出应该类似pip xx.x.x from /path/to/python3.6/site-packages/pip (python 3.6)。检查当前pip的关联版本:如果你不确定
pip或pip3指向哪个Python版本,运行这两个命令对比:pip --version pip3 --version如果
pip3指向的是更高版本的Python(比如3.7+),那还是用python3.6 -m pip更保险。
问题2:安装aiohttp时提示"RuntimeError: aiohttp requires Python 3.4.2+"
这个报错的核心原因很明确:你运行pip install aiohttp时,实际调用的是Python 2.7的pip,而aiohttp从3.0版本开始就彻底停止支持Python 2了。哪怕你装了Python 3.6.4,只要用错了pip版本,就会触发这个错误。
解决方法直接套用上面的正确pip调用方式即可:
python3.6 -m pip install aiohttp
如果安装过程中遇到缓存相关的异常,可以加上--no-cache-dir参数强制重新下载包:
python3.6 -m pip install --no-cache-dir aiohttp
额外小技巧
为了避免以后反复混淆,你可以给Python 3.6的pip设置一个别名:在~/.bashrc或~/.zshrc文件里添加一行:
alias pip36='python3.6 -m pip'
之后直接用pip36 install [包名]就能快速指定到Python 3.6.4的环境了。
内容的提问来源于stack exchange,提问作者Charmeleon




