Ubuntu22.04采用pyenv安装管理多版本python

ubuntu22.04版本预装了python3.10,由于项目需要安装python2.7版本,对安装和管理python版本相关命令进行记录。

安装python

  • 在Ubuntu中通过终端安装任何新软件之前都建议执行"双升":
bash 复制代码
sudo apt update && sudo apt upgrade
  • 查看python是否安装命令:
bash 复制代码
python3 --version
python3 -V
  • 安装其他版本的python命令:
bash 复制代码
sudo apt-get install pythonX.X

安装pip

bash 复制代码
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py

# 安装完之后检查一下是否可用
pip2 -V

安装虚拟环境踩坑:

  • 安装python2.7和pip:
bash 复制代码
sudo apt-get update
sudo apt-get install python2.7 python-pip 
  • 安装虚拟环境:
bash 复制代码
sudo pip install virtualenv
  • 创建虚拟环境:
bash 复制代码
virtualenv -p /usr/bin/python2.7 venv
  • 激活虚拟环境:
bash 复制代码
source venv/bin/activate

正确安装步骤

安装对应版本的python和pip之后,安装virtualenv依赖。

注意:这个依赖应该是和python版本相关,如果是python3.10下的virtualenv依赖,则用这个依赖创建的虚拟环境中的python版本为3.10。

使用pyenv管理python版本。

安装pyenv首先选择安装路径,一般选择安装在家目录下,很多软件的配置文件等都是以隐藏文件的形式放在家目录下或者根目录下。

  • 安装路径设置为~/.pyenv,在终端窗口输入命令如下:
bash 复制代码
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
或者
git clone https://gitee.com/krypln/pyenv.git   ~/.pyenv
  • 定义环境变量,在终端窗口输入命令如下:
bash 复制代码
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

pyenv的使用

  • 可以安装的python的版本:
bash 复制代码
 pyenv install --list
  • 查看已经安装的python版本:
bash 复制代码
 pyenv versions
  • 查看当前使用的python版本:
bash 复制代码
pyenv version

安装 pyenv-virtualenv

  • 安装:pyenv的安装目录是/.pyenv,所以把pyenv-virtualenv克隆到/.pyenv/plugins下,执行下面的命令:
bash 复制代码
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
  • 配置环境变量,终端输入下面的命令:
bash 复制代码
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# 重新初始化 shell 环境,如果不执行该命令需要重新启动终端窗口
exec $SHELL
  • 创建虚拟环境
bash 复制代码
pyenv virtualenv 2.7.18 myvenv
  • 使用虚拟环境
    在任意目录下,执行下面命令:
bash 复制代码
pyenv activate myvenv
bash 复制代码
# 查看虚拟环境python版本
python --version
# 查看pip版本、python版本、 pip 包安装的绝对路径,也是 pyenv 安装目录下/versions/python版本/envs/虚拟环境名/
pip --version
  • 退出虚拟环境
    关掉终端,相当于退出虚拟环境
bash 复制代码
# 主动退出
pyenv deactivate 
相关推荐
sunny.day21 小时前
js原型与原型链
开发语言·javascript·原型模式·js原型链
weixin_5231853221 小时前
Java内存模型详解:栈、堆、方法区、本地方法栈与程序计数器
java·开发语言
hdsoft_huge21 小时前
部署 Nacos + Ollama + vLLM + MCP 完整图文教程(1Panel 面板,命令行安装两种方式)
python·vllm·ollama·mcp
换个昵称都难21 小时前
WebRTC QoS 实战:从原理到弱网优化
开发语言·php·webrtc
weixin_3077791321 小时前
从工具到协作者:AI在后端研发中的流程重构与组织赋能
人工智能·后端·python·算法·自动化
AI帮小忙21 小时前
CTF WEB 解题技能
python
科芯创展21 小时前
30VIN,0.15A,0.8uA低功耗,稳压LDO,XZ6328
python
爱吃生蚝的于勒21 小时前
QT开发第三章——常用控件
linux·服务器·开发语言·前端·javascript·c++·qt
装不满的克莱因瓶21 小时前
循环神经网络及LSTM——从序列建模到长期依赖记忆机制
人工智能·pytorch·python·rnn·深度学习·神经网络·lstm
未若君雅裁21 小时前
工厂模式详解:简单工厂、工厂方法与抽象工厂
java·开发语言