安装PyPy后如何切换回使用Python库(保留PyPy)
解决PyPy优先于Python的问题,同时保留PyPy
没问题,这是很常见的环境变量冲突问题,我给你几个实用的方法,既能保留PyPy用于测试,又能让系统默认回到Python的工具链:
1. 临时指定使用Python的pip
如果你只是偶尔需要用Python的pip执行操作,直接在命令里明确调用对应Python版本的模块即可:
- 对于Python 2:
python -m pip install --upgrade setuptools - 对于Python 3:
python3 -m pip install --upgrade setuptools
这样会强制使用对应Python版本自带的pip,完全绕开PyPy的pip。
2. 调整环境变量PATH(长期生效)
系统是根据PATH环境变量里的路径顺序来查找可执行文件的,PyPy的路径排在Python前面才会被优先调用。你可以修改PATH让Python的路径靠前:
- 先查看当前PATH里的PyPy和Python路径,执行:
echo $PATH - 找到Python的bin目录(比如
/usr/local/bin)和PyPy的bin目录(比如/usr/local/lib/pypy2.7/bin)。 - 编辑你的shell配置文件(比如
~/.bashrc、~/.zshrc或者~/.profile),找到PATH设置的行,把Python的bin目录移到PyPy路径的前面。比如修改后可能是:export PATH="/usr/local/bin:/usr/local/lib/pypy2.7/bin:$PATH" - 让修改生效,执行:
source ~/.bashrc # 对应bash shell # 或者 source ~/.zshrc 对应zsh
3. 给PyPy的工具加别名(避免混淆)
为了区分PyPy和Python的工具,你可以给PyPy的pip和python加专属别名,这样平时用pip和python就是默认的Python版本,需要PyPy时用别名:
- 编辑shell配置文件,添加:
alias pypy-python='pypy' alias pypy-pip='pypy -m pip' - 生效配置后,用
pypy-pip install xxx就是给PyPy装包,pip install xxx就是给Python装包,完全不会混。
4. 使用update-alternatives切换默认版本(仅Debian/Ubuntu系)
如果你的系统是Debian或Ubuntu,可以用系统自带的update-alternatives工具管理默认的Python和pip版本:
- 配置Python的可选版本:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/pypy 3 - 然后执行以下命令选择默认的Python版本:
按照提示输入对应Python版本的序号即可。sudo update-alternatives --config python - 同理配置pip的默认版本:
sudo update-alternatives --install /usr/bin/pip pip /usr/local/lib/python2.7/dist-packages/pip 1 sudo update-alternatives --install /usr/bin/pip pip /usr/local/lib/python3.4/dist-packages/pip 2 sudo update-alternatives --install /usr/bin/pip pip /usr/local/lib/pypy2.7/dist-packages/pip 3 sudo update-alternatives --config pip
这些方法都能帮你解决优先级问题,同时保留PyPy随时用于测试。
内容的提问来源于stack exchange,提问作者sten
相关产品推荐
相关产品推荐

