Ubuntu Python常见问题解答
导读:Ubuntu Python 常见问题解答 一 安装与版本管理 使用 APT 安装与验证 更新索引并安装:sudo apt update && sudo apt install python3 python3-pip 验证...
Ubuntu Python 常见问题解答
一 安装与版本管理
- 使用 APT 安装与验证
- 更新索引并安装:sudo apt update & & sudo apt install python3 python3-pip
- 验证版本:python3 --version、pip3 --version
- 安装指定版本(如 3.8)通过 Deadsnakes PPA
- 添加源并安装:sudo add-apt-repository ppa:deadsnakes/ppa & & sudo apt update & & sudo apt install python3.8
- 多版本切换与默认版本
- 使用 alternatives 管理命令:
- 注册版本:sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
- 交互选择:sudo update-alternatives --config python3
- 使用 alternatives 管理命令:
- 使用 pyenv 管理多版本(适合开发与测试)
- 安装与初始化(将以下加入 ~/.bashrc 或 ~/.zshrc 后执行 source):
- 安装:curl https://pyenv.run | bash
- 环境变量:
- export PATH=“$HOME/.pyenv/bin:$PATH”
- eval “$(pyenv init --path)”
- eval “$(pyenv init -)”
- eval “$(pyenv virtualenv-init -)”
- 常用命令:pyenv install 3.9.1、pyenv global 3.9.1
- 安装与初始化(将以下加入 ~/.bashrc 或 ~/.zshrc 后执行 source):
- 从源码编译安装(需要特定配置或最新补丁时)
- 安装依赖:sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
- 编译安装示例:
- 下载与解压:wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz & & tar -xf Python-3.9.1.tgz & & cd Python-3.9.1
- 配置与安装:
- ./configure --enable-optimizations
- make -j$(nproc)
- sudo make altinstall(避免覆盖系统 python3)
- 建议将可执行文件软链到 /usr/local/bin/python3.9 便于管理
二 虚拟环境与依赖隔离
- 使用内置 venv(推荐)
- 创建:python3 -m venv venv
- 激活:source venv/bin/activate
- 退出:deactivate
- 在虚拟环境中使用:pip install -r requirements.txt
- 使用 virtualenv(备选)
- 安装:sudo pip3 install virtualenv
- 创建与激活:virtualenv venv & & source venv/bin/activate
- 使用 pyenv-virtualenv(配合 pyenv)
- 创建:pyenv virtualenv 3.9.1 myproj
- 使用:pyenv activate myproj
- 镜像加速与权限建议
- 国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
- 避免系统污染:优先在虚拟环境中安装依赖,尽量不使用 sudo pip
三 常见报错与修复
- 找不到 pip 或 pip3
- 安装:sudo apt install python3-pip
- 升级:python3 -m pip install --upgrade pip
- 仍失败时,使用官方脚本安装 pip:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py & & python3 get-pip.py
- ModuleNotFoundError / ImportError
- 确认在正确的虚拟环境中安装依赖:pip show 包名
- 安装缺失包:pip install 包名;若多版本并存,使用 python3.x -m pip install 包名
- 版本冲突与命令混淆
- 明确调用:python3 与 pip3 对应系统 Python 3;项目内使用 python -m pip 保证与当前解释器一致
- 多版本时用 update-alternatives 或 pyenv 明确默认版本
- 编译安装或安装包时报错缺少依赖
- 安装编译依赖:sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev
- “Unable to locate package”
- 先更新索引:sudo apt update;若安装特定版本,确认已添加相应仓库(如 deadsnakes/ppa)
- pip 版本过旧或内部错误
- 升级:python3 -m pip install --upgrade pip
- 若 pip3 脚本异常(如旧版 pip 10+ 的入口问题),重新安装 pip 后再试
四 系统级注意事项
- 不要卸载系统自带的 Python 3
- apt、系统脚本等大量组件依赖 Python 3;擅自卸载可能导致系统功能异常甚至无法启动(Ubuntu 18.04 默认 3.6、20.04 默认 3.8、22.04 默认 3.10)
- 修改默认 python 的稳妥方式
- 使用 update-alternatives 管理 /usr/bin/python3 的软链或优先级,避免直接替换系统二进制文件
- PATH 与环境变量
- 若从源码安装到 /usr/local/bin,确保其位于 PATH 中(例如在 ~/.bashrc 中添加:export PATH=“/usr/local/bin:$PATH” 并 source ~/.bashrc)
- 降级需求的正确做法
- 优先在虚拟环境中使用所需版本(如 pyenv 或 venv);若必须系统级安装,使用 deadsnakes/ppa 安装目标版本并通过 alternatives 切换,而不是直接移除系统版本
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Python常见问题解答
本文地址: https://pptw.com/jishu/755774.html
