目 录CONTENT

文章目录

Python更换版本和pip修复

Administrator
2025-04-22 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

一、Python更换版本

1. 安装 pyenv

首先,你需要在服务器上安装 pyenv

curl https://pyenv.run | bash

或者手动安装:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

然后将 pyenv 添加到你的 shell 中(例如 .bashrc.zshrc):

这里有区别的,看自己bash名称是什么

是bashrc就放进bashrc

是zshrc就放进去zshrc

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc

重新加载 shell:

source ~/.bashrc

2. 安装所需的 Python 版本

使用 pyenv 安装你需要的 Python 版本。例如,要安装 Python 3.10.12:

在 Ubuntu 系统上,你可以使用以下命令来安装所需的库:

!!!在安装之前需要先安装必要的库

sudo apt update
sudo apt install -y \
    make build-essential libssl-dev zlib1g-dev libbz2-dev \
    libreadline-dev libsqlite3-dev wget curl llvm \
    libncursesw5-dev xz-utils tk-dev libxml2-dev \
    libxmlsec1-dev libffi-dev liblzma-dev

装完基础依赖后就可以安装Python了

pyenv install 3.10.12

3. 设置全局或局部 Python 版本

安装完成后,你可以设置全局(系统范围)或局部(当前目录或项目范围)的 Python 版本。

  • 全局设置:

pyenv global 3.10.12
  • 局部设置:

pyenv local 3.10.12

局部设置会在当前目录下创建一个 .python-version 文件,之后在该目录及其子目录中使用指定的 Python 版本。

安装完后需要再添加一下变量环境

同样的

是bashrc就放进bashrc

是zshrc就放进去zshrc

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

4. 验证 Python 版本

最后,验证 Python 版本是否已经成功更改:

python3 --version

你应该会看到刚才设置的 Python 版本。

5. 完整脚本

#!/bin/bash

# 步骤 1:安装 pyenv
echo "步骤 1:安装 pyenv..."
curl https://pyenv.run | bash

# 步骤 2:直接在脚本中添加 pyenv 环境变量
echo "步骤 2:在当前会话中配置 pyenv..."
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

# 步骤 3:安装所需依赖项
echo "步骤 3:安装用于构建 Python 的依赖项..."
apt install -y \
make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev \
libxmlsec1-dev libffi-dev liblzma-dev

# 步骤 4:通过 pyenv 安装 Python 3.10.12
echo "步骤4:使用 pyenv 安装 Python 3.10.12...
pyenv install 3.10.12

# 步骤 5:将 Python 3.10.12 设置为全局版本
echo "步骤 5:将 Python 3.10.12 设置为全局 Python 版本..."
pyenv global 3.10.12

# 步骤 6:将 pyenv 环境变量添加到 .bashrc
echo "步骤 2:在 .bashrc 中配置 pyenv..."
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc

# 步骤 7:重新加载 bashrc 以应用更改
echo "步骤3:重新加载 .bashrc……
source ~/.bashrc

echo "所有步骤均已成功完成!"

如果没生效需要再敲一遍
source ~/.bashrc

二、windows上pip模块安装和位置修改

⚠️ 报错解释:

你现在看到的这个错误:

C:\Users\user>pip -V
Fatal error in launcher: Unable to create process using '"C:\Users\user\AppData\Local\Programs\Python\Python310\python.exe"  "E:\Python-3.10.11\Scripts\pip.exe" -V': ???????????

说明:

pip.exe 启动器 还是绑定到了旧的 Python310 的解释器路径,即使它物理位置在 E:\

这是 pip 安装时自动嵌入的路径信息,叫做 embedded launcher reference,需要清理或重新生成。

最快解决方案:重新安装 pip 到正确的 Python 上

步骤如下:

步骤 1:删除旧的 pip 启动器

删除旧的 pip 启动器文件(只是小程序,不影响库):

del E:\Python-3.10.11\Scripts\pip.exe
del E:\Python-3.10.11\Scripts\pip3.exe

步骤 2:用你当前 Python 重装 pip

运行这个命令,用你当前的 python3 解释器重新安装 pip:

E:\Python-3.10.11\python3.exe -m ensurepip --upgrade

然后再执行:

E:\Python-3.10.11\python3.exe -m pip install --upgrade pip


结果:

E:\Python-3.10.11\python3.exe -m pip install --upgrade pip

C:\Users\User>E:\Python-3.10.11\python3.exe -m pip install --upgrade pip
Requirement already satisfied: pip in e:\python-3.10.11\lib\site-packages (23.0.1)
Collecting pip
  Downloading pip-25.0.1-py3-none-any.whl (1.8 MB)
     ---------------------------------------- 1.8/1.8 MB 1.7 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.0.1
    Uninstalling pip-23.0.1:
      Successfully uninstalled pip-23.0.1
Successfully installed pip-25.0.1

C:\Users\User>

它会在 E:\Python-3.10.11\Scripts 中重新生成正确的 pip.exe,绑定当前解释器。

步骤 3:验证

pip -V

应该输出:

C:\Users\User>pip -V
pip 25.0.1 from E:\Python-3.10.11\lib\site-packages\pip (python 3.10)

再运行:

where pip

确认只有这一个:

E:\Python-3.10.11\Scripts\pip.exe

🎉 恭喜你,彻底切换到干净的 Python 3.10 环境了!

现在你可以放心地执行:

python3 chrome.py
pip install xxx

再也不会有“莫名其妙的旧版本 Python 冲突”了 😎

-.-

0

评论区