0%

python安装方式集合(ubuntu)

python安装方式集合(ubuntu)

方式一:apt包管理器方式安装:

1、解除仓库限制

  • 官方仓库的 Python 版本通常较保守(如 Ubuntu 22.04 默认仅支持到 Python 3.10)。
  • 若需更新版本(如 Python 3.11/3.12),需添加第三方 PPA 仓库:
# 添加 deadsnakes PPA(Ubuntu 适用)
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

2、查看可安装python版本

apt list 'python3.*'

3、安装python3.13

apt install python3.13

4、设置环境

# 验证安装路径
which python3.13
# 输出示例:/usr/bin/python3.13
python3.13 -c "import sys; print(sys.executable)"

# 设置全局python版本
ln -s /usr/bin/python3.13 /usr/bin/python3

5、安装pip

  • 方法 1:使用 ensurepip(推荐)—— Python 内置的 ensurepip 模块可直接安装 pip
# 为 Python 3.13 安装 pip
python3.13 -m ensurepip --upgrade
  • 方法 2:通过 get-pip.py 脚本 —— 若 ensurepip 不可用(如编译时被禁用),手动下载并安装:
# ==================== python3.13 安装
curl -O https://bootstrap.pypa.io/get-pip.py # 下载安装脚本
python3.13 get-pip.py # 为 Python 3.13 安装 pip
rm get-pip.py # 删除脚本(可选)


# ==================== python3.8 安装
sudo apt install python3.8-distutils python3.8-venv
curl -O https://bootstrap.pypa.io/pip/3.8/get-pip.py # 版本太小 需要使用专用的pip安装
python3.13 get-pip.py # 为 Python 3.8 安装 pip
rm get-pip.py # 删除脚本(可选)
  • 方法 3:通过 APT 安装(需仓库支持)—— 若 Python 3.13 来自第三方仓库(如 deadsnakes),尝试安装对应 pip
sudo apt install python3.13-pip  # 实际包名可能不同(如 python3-pip)

pip pip3 pip3.13

  • 修复路径与权限 —— 安装后,pip 的可执行文件应位于:
/usr/local/bin/pip3.13    # 手动或 get-pip.py 安装的路径
/usr/bin/pip3.13 # APT 安装的路径
  • 设置全局变量
ln -s /usr/local/bin/pip3.13 /usr/bin/pip3

方式二:Pyenv多版本管理方式:

Pyenv版本优先级:Shell > Local > Global

1、更新系统

首先,你需要确保你的 Ubuntu 系统是最新的。

sudo apt update
sudo apt upgrade

2、安装pyenv 前置依赖

PyENV 需要一些依赖项才能正常工作,运行以下命令安装它们。

sudo apt-get install build-essential libbz2-dev libncurses5-dev libncursesw5-dev libffi-dev libreadline-dev libssl-dev libsqlite3-dev liblzma-dev zlib1g-dev wget curl llvm libncurses-dev xz-utils git

3、安装 PyENV

执行以下命令,安装 PyENV

curl https://pyenv.run | bash

Installing PyENV on Ubuntu

4、更新Shell配置

  • 4.1:(非root用户)

​ 安装 PyENV 后,您需要将其添加到 shell 配置中,编辑 ~/.bashrc 文件,添加以下行,以便每次打开终端时它都会加载。

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

​ 使用 source 命令,使更改生效。

source ~/.bashrc
  • 4.2、root用户安装方式

​ 安装 PyENV 后,您需要将其添加到 shell 配置中,编辑 ~/.bashrc 文件,添加以下行,以便每次打开终端时它都会加载。

# 编辑全局环境变量文件(影响所有用户)
echo 'export PYENV_ROOT="/root/.pyenv"' >> /etc/profile.d/pyenv.sh
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile.d/pyenv.sh
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> /etc/profile.d/pyenv.sh

​ 使用 source 命令,使更改生效。

# 使配置立即生效
source /etc/profile.d/pyenv.sh

5、安装不同的python版本

现在您可以安装所需的任何版本的 Python。例如,要安装 Python 3.12

pyenv install 3.12

或者您可能需要安装 Python 2.7 等旧版本

pyenv install 2.7

列出系统上安装的所有 Python 版本

pyenv install --list

6、设置全局python版本

您可以设置默认使用的全局 Python 版本,比如将 Python 3.12 设置为全局版本。

pyenv global 3.12

查看当前全局 Python 版本

pyenv version

PyENV Set Default Python Version

7、设置其他版本

# 进入你的项目目录
cd ~/projects/legacy-project

# 设置该目录的 Python 版本为 3.8
pyenv local 3.8.12 # 假设已安装 3.8.12

# 这会生成一个隐藏文件 `.python-version`,记录版本号

## 验证
pyenv shell 3.8.12 # 临时设置
python --version # 应显示 3.8.12

# 退出临时模式(恢复全局或本地设置)
pyenv shell --unset

# 恢复全局版本
cd ~/projects/legacy-project
rm .python-version # 删除版本标记文件

使用虚拟环境隔离项目(推荐)

# 创建虚拟环境(基于 Python 3.8)
pyenv virtualenv 3.8.12 my-legacy-env

# 进入项目目录并激活虚拟环境
cd ~/projects/legacy-project
pyenv local my-legacy-env # 自动激活

# 验证
python --version # 显示 3.8.12,且环境独立
pip list # 显示该环境独立的包

# 退出虚拟环境
pyenv deactivate

Step 9: 验证版本切换

cd ~  # 退出项目目录
python --version # 应显示全局版本 3.13.0

cd ~/projects/legacy-project
python --version # 应显示本地版本 3.8.12 或虚拟环境

11、删除pyenv环境

  • 1、删除 pyenv 本体及所有 Python 版本
# 删除 pyenv 根目录(默认路径)
rm -rf ~/.pyenv

# 如果自定义过安装路径(通过 PYENV_ROOT 变量),删除对应目录
# rm -rf /path/to/your/custom/pyenv
  • 2、清理 Shell 环境配置 – 编辑你的 Shell 配置文件(根据实际使用的 Shell):

    • Bash~/.bashrc, ~/.bash_profile
    • Zsh~/.zshrc
    • Fish~/.config/fish/config.fish

    删除以下内容

# 查找并删除与 pyenv 相关的代码块,例如:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)" # 如果配置了虚拟环境插件
  • **3、 移除已安装的 Python 版本(可选)– 如果之前通过 pyenv 安装了多个 Python 版本,可手动删除:
# 删除所有版本(默认安装路径)
rm -rf ~/.pyenv/versions/*

# 如果自定义过版本路径,删除对应目录
# rm -rf /path/to/your/python/versions
  • 4、清除缓存和临时文件
rm -rf ~/.pyenv/cache     # 安装时的源码缓存
rm -f ~/.pyenv/version # 当前使用的 Python 版本记录
  • 5、验证卸载 – 重新启动终端或执行:
exec $SHELL

## 然后检查命令是否失效:
pyenv --version # 应提示 "command not found"
which python # 应指向系统默认 Python,而非 pyenv 路径
  • 6、残留环境变量
# 多用户环境:
sudo rm -rf /usr/local/pyenv
# 插件清理:
rm -rf ~/.pyenv/plugins

方式三:UV方式:

本文参考自:1、【Python】使用uv管理python虚拟环境_uv环境python-CSDN博客

本文参考自:2、uv 简易安装与更换国内镜像源_uv 国内源-CSDN博客

1、安装uv管理器

  • Mac || Linux安装:
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows安装:
# 方式1: 在 Windows 上:使用 Astral.sh 提供的安装脚本
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 方式2: 在 Windows 上:使用 scoop 安装 uv
scoop install uv
  • pip安装方式:
pip install uv
  • 验证是否安装成功:
# 验证安装是否成功
uv --help

# 查看uv版本
uv --version

img

2、卸载uv:

uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"

# mac/linux
rm ~/.local/bin/uv ~/.local/bin/uvx
# windows
rm $HOME.local\bin\uv.exe
rm $HOME.local\bin\uvx.exe

3、python管理:

  • 查看python可用版本
uv python list
  • 安装python3.13
# 标准安装方式
uv python install 3.13

# 其他安装Python的方式实现,比如PyPy实现的python
uv python install pypy@3.13
  • 查找某个python版本的路径
uv python find 3.10
# 输出:
# /Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10
  • 选用python版本(在具体的某个项目中,进入项目目录,使用如下命令指定选用的python版本)
uv python pin 版本号

# 这个命令会在指定目录下创建一个 `.python-version` 文件,内容如下

uv python pin 3.10
# 输出:
# Pinned `.python-version` to `3.10`

cat .python-version
# 输出:
# 3.10

4、创建虚拟环境(项目)

  • 方式1:创建项目有两种方式,第一种方式,先创建好项目目录,然后设置python版本并初始化uv虚拟环境
uv python pin 3.10
uv init # 初始化
  • 执行了uv init之后,会在当前目录下创建几个文件,同时也会在当前目录下执行git init创建出一个新的git仓库来
~/data/code/python/test_code                                                                                                      
❯ uv python pin 3.13
Pinned `.python-version` to `3.13`

~/data/code/python/test_code
❯ uv init
Initialized project `test-code`

~/data/code/python/test_code main ?6
ls
README.md main.py pyproject.toml
  • 方式2:另外一个方式是在init之后添加一个项目名,会自动创建项目文件夹
uv init 项目名

5、添加依赖

uv add 依赖项

# 比如添加requests库
uv add requests

# 还可以指定具体版本
uv add requests==版本号

执行了这个命令后,会在当前目录下创建.venv虚拟环境目录(在vscode里面可以选择这个目录作为虚拟环境,否则代码解析会有问题),并添加我们要的依赖项,同时会新增一个uv.lock文件,用于存放依赖项版本相关的信息。pyproject.toml文件中的dependencies字段也会包含需要的依赖项。

~/data/code/python/test_code main ?6                                                                                              
❯ uv add requests
Using CPython 3.13.1 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
Creating virtual environment at: .venv
Resolved 6 packages in 13.85s
Prepared 5 packages in 5.55s
Installed 5 packages in 13ms
+ certifi==2025.1.31
+ charset-normalizer==3.4.1
+ idna==3.10
+ requests==2.32.3
+ urllib3==2.4.0

而且,从这个输出中也能看到,它自动使用了.python-version指定的3.13版本的python,和当前我们全局目录下的python3指向什么版本没有关系(我的全局python3指向的是3.10版本)

6、运行程序

依赖添加好后,就可以使用uv来运行python程序了

uv run 程序文件名 [命令行参数]

uv会自动按照我们的配置来运行程序,无序我们手动维护依赖项,也不需要手动去source各式各样的虚拟环境了。

7、uvx命令

随着uv下载的还有一个uvx命令,uvx命令本质上是uv tool run命令的别名

uvx python main.py
# 等价于
uv run main.py
# 等价于
uv tool run main.py

实际例子,如下这两个命令是等价的

❯ uvx --directory ~/data/code/python/test_code python main.py
Hello from test-code!

❯ uv tool run --directory ~/data/code/python/test_code python main.py
Hello from test-code!

8、设置下载包的镜像源

uv下载第三方库本质上也是通过pypi源下载的,所以在国内网络环境中默认链接速度会很慢,可以在项目目录的pyproject.toml中添加如下内容来使用清华源

[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

运行uv add命令的时候也可以指定镜像源

uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

uv也提供了全局的配置项,可以通过环境变量UV_DEFAULT_INDEX配置镜像源

export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple

全局的配置项优先级低于pyproject.toml中配置的镜像源。如果pyproject.toml里面配置了镜像源,则会使用pyproject.toml的配置。