虚拟环境pip指向旧版本,Python环境版本不一致问题咨询
解决Pipenv虚拟环境使用旧Python版本的问题
我之前也碰到过一模一样的情况,这大概率是因为Pipenv默认绑定了你先安装的Python 3.5,而没有自动识别后来通过Homebrew安装的Python 3.6。咱们一步步来搞定这个问题:
第一步:确认系统中的Python路径
先搞清楚两个Python版本的具体位置,在终端执行以下命令:
which python3.5 which python3.6
Homebrew安装的Python一般会在/usr/local/bin目录下,记好3.6的路径,后面会用到。
第二步:方案1 - 直接指定Python版本创建虚拟环境
如果已经存在那个用了3.5的旧虚拟环境,先删掉它:
pipenv --rm
然后用以下命令强制指定Python 3.6来创建并进入虚拟环境:
pipenv --python 3.6 shell
进入环境后,执行python --version和pip --version,应该就能看到版本是3.6了。
第三步:方案2 - 设置默认Python版本(一劳永逸)
如果不想每次创建虚拟环境都手动指定版本,可以设置环境变量让Pipenv默认用3.6:
- 打开你的shell配置文件,比如用bash的话是
~/.bash_profile,用zsh的话是~/.zshrc,在文件末尾添加一行:
export PIPENV_PYTHON=/usr/local/bin/python3.6
(这里的路径要替换成你刚才查到的python3.6实际路径)
2. 让配置生效,执行:
source ~/.bash_profile # 如果你用的是bash # 或者 source ~/.zshrc # 如果你用的是zsh
之后再执行pipenv shell,虚拟环境就会默认使用Python 3.6了。
为什么会出现这个问题?
Pipenv在查找Python版本时,会优先选择系统中最早安装的那个同大版本(比如Python3)的解释器。你先装了3.5,它就把这个设为默认的Python3候选,后来装的3.6虽然存在,但Pipenv不会自动切换,所以需要我们手动指定或者通过环境变量来调整。
内容的提问来源于stack exchange,提问作者Frank Harland
相关产品推荐
相关产品推荐

