Ubuntu上Python安装与管理秘籍

Ubuntu系统通常预装Python 3(如Ubuntu 22.04及以上版本默认安装Python 3.10),首先通过终端命令确认现有版本:
python3 --version# 查看Python 3版本which python3# 查看Python 3安装路径若未安装,可通过sudo apt install python3快速安装默认版本。
APT是Ubuntu最便捷的安装方式,适合大多数用户:
sudo apt update && sudo apt upgrade -ysudo apt install python3sudo apt install python3.7),部分旧版本可能需要手动启用Universe仓库。若APT仓库中没有所需版本(如Python 3.12),可通过Deadsnakes PPA(由社区维护的第三方源)安装:
sudo add-apt-repository ppa:deadsnakes/ppasudo apt updatesudo apt install python3.12 python3.12-dev python3.12-venvpython3.12 --version该方式支持安装较新的Python版本,且能自动解决依赖问题。
若需要完全控制编译选项(如启用特定功能、优化性能),可选择源码编译:
sudo apt install build-essential zlib1g-dev libssl-dev libreadline-dev libsqlite3-dev tk-dev libffi-dev liblzma-devwget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgztar -xzvf Python-3.12.0.tgzcd Python-3.12.0--enable-optimizations优化性能,-j$(nproc)利用多核加速编译./configure --enable-optimizationsmake -j$(nproc)sudo make altinstall# 不覆盖系统默认python3python3.12 --version编译安装耗时较长,但能获得最高定制性。
若需要同时管理多个Python版本(如项目A用3.8,项目B用3.12),pyenv是最强大的工具:
sudo apt updatesudo apt install -y make 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 python-openssl gitcurl https://pyenv.run | bash~/.bashrc(或~/.zshrc)文件末尾export PATH="$HOME/.pyenv/bin:$PATH"eval "$(pyenv init --path)"eval "$(pyenv virtualenv-init -)"保存后执行source ~/.bashrc使配置生效。pyenv install 3.8.12pyenv install 3.12.0pyenv global 3.8.12cd ~/my_projectpyenv local 3.12.0# 生成.python-version文件python --version# 显示pyenv管理的当前版本pyenv的优势在于用户级安装(不影响系统Python),且能无缝切换版本,适合复杂开发环境。
无论使用哪种安装方式,都应通过虚拟环境隔离项目依赖,避免版本冲突:
python3 -m venv myenv# 创建名为myenv的虚拟环境source myenv/bin/activate# 激活环境(Linux/macOS)激活后,终端提示符会显示(myenv),此时安装的包仅对当前环境有效。deactivatepyenv virtualenv创建更便捷的虚拟环境:pyenv virtualenv 3.8.12 myenv38# 基于Python 3.8.12创建虚拟环境pyenv activate myenv38 # 激活虚拟环境虚拟环境是Python开发的最佳实践,能有效解决“依赖地狱”问题。
sudo(但避免对系统Python随意修改)。libssl-dev),可通过sudo apt install <库名>补充。apt)无法运行,可通过sudo update-alternatives --config python3恢复默认版本,或使用pyenv避免修改系统Python。LogicFlow 工作流撤销与重做:从全量快照到命令模式
修复 uni-app App 端 vue-i18n 占位符丢失:封装跨端可用的 tf 格式化方法
极光推送全攻略下:uni-app 代码实现与 iOS 排查实战
腾讯云 TRTC UniApp SDK 从入门到上线指南
VueRouter进阶-动态路由与嵌套路由
Vue 2 中 Object 的变化侦测:从 getter/setter 到 Dep Watcher Observer