当前位置: 首页 > news >正文

一文搞懂python虚拟环境配置及使用pyenv进行python多版本管理

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

  • 在Ubuntu中通过终端安装任何新软件之前都建议执行“双升”:
sudo apt update && sudo apt upgrade

1. 安装python

  • 查看python是否安装命令:
python3 --version
python3 -V
  • 安装其他版本的python命令:
sudo apt-get install pythonX.X

如果python2版本是>=2.7.9, python3版本是>=3.4,,pip是和python本身进行捆绑安装的。
否则,需要进行单独安装。

2. 安装pip

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py# 安装完之后检查一下pip是否可用
pip2 -V

3. 安装虚拟环境(此方法安装后的虚拟环境中的python版本为系统默认python版本)

安装对应版本的python和pip之后,安装virtualenv用以创建虚拟环境。

- 安装虚拟环境:
```bash
sudo pip install virtualenv
  • 创建虚拟环境:
virtualenv -p /usr/bin/pythonX.X venv
  • 激活虚拟环境:
source venv/bin/activate

注意:
此处的virtualenv依赖安装,虽然已经pip install了python2.7版本,但是系统的默认版本仍然是3.10,因此创建的virtualenv依赖是python3.10的,虚拟环境中的python也是3.10版本的。

4 使用pyenv管理python版本

背景:pyenv 是一个 Python 版本管理工具,它能够进行全局的 Python 版本切换,也可以为单个项目提供对应的 Python 版本。

4.1 安装pyenv依赖库

# 执行以下命令安装依赖库
# 更新源
sudo apt-get update
# 更新软件
sudo apt-get upgradesudo apt-get install make build-essential libssl-dev zlib1g-dev 
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl 
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

4.2 安装pyenv

pyenv的安装需要从git上进行拉取,并进行环境变量的配置:
首先选择安装路径,一般选择安装在家目录下,很多软件的配置文件等都是以隐藏文件的形式放在家目录下或者根目录下。

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

4.3 pyenv的卸载

如果想卸载 pyenv(pyenv 安装的默认路径为 ~/.pyenv,如果自定义安装路径则删除自定义文件夹):

rm -fr ~/.pyenv

4.4 pyenv的使用

1. 查看目前支持安装的python版本:

 pyenv install --list

2. 在pyenv中安装python
在安装python之前,必须进行python所需依赖包的安装:

# 1. 安装 Python 所需要的依赖包
sudo apt-get install libc6-dev gcc
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
# 2. 安装 Python
#---------------第一种方式---------------
pyenv install 3.8.5 -v  #-v 以日志模式显示安装过程
#因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,
#然后再用pyenv安装,推荐使用第一种方式。下面是可选的安装模式。
#---------------第二种方式---------------
cd ~/.pyenv
sudo mkdir cache
sudo wget -c https://www.python.org/ftp/python/3.10.12/Python-3.8.5.tar.xz -P  ~/.pyenv/cache/
pyenv install 3.8.5 -v
#这是python源,国内源没找,有空再更新# 3. 更新 pyenv 数据库
pyenv rehash# 4. 列出所安装的 Python 版本
pyenv versions#5. 切换 Python 版本
pyenv global 3.7.3# 6. 验证版本
python -V

注意:

  • 使用 pyenv 管理 Python,必须是用 pyenv 安装的 Python 才行,系统以前有的,需要重新用 pyenv 安装;
  • 使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/xxx 下,不会和系统模块发生冲突;
  • 使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库。
  1. 列出本地pyenv中所有可用的python版本
pyenv versions
  1. 选择指定的python版本
pyenv global 3.7.3  
# 查看版本
python -V
  1. 删除指定的python版本
pyenv uninstall 3.7.3
remove /home/python/.pyenv/versions/3.7.3? y
// 列出删除 3.7. 3后,pyenv 中所有可用的 Python 版本
pyenv versions

4.5 安装 pyenv-virtualenv虚拟环境配置

1. 安装
pyenv的安装目录是/.pyenv,所以把pyenv-virtualenv克隆到/.pyenv/plugins下,执行下面的命令:

git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

2. 配置环境变量,终端输入下面的命令:

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# 重新初始化 shell 环境,如果不执行该命令需要重新启动终端窗口
exec $SHELL

3. 创建指定python版本的虚拟环境

pyenv virtualenv 2.7.18 myvenv

4. 使用虚拟环境
在任意目录下,执行下面命令:

pyenv activate myvenv
# 查看虚拟环境python版本
python --version
# 查看pip版本、python版本、 pip 包安装的绝对路径,也是 pyenv 安装目录下/versions/python版本/envs/虚拟环境名/
pip --version

5. 退出虚拟环境
关掉终端,相当于退出虚拟环境

# 主动退出
pyenv deactivate 

http://www.mrgr.cn/news/65452.html

相关文章:

  • 小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统
  • golang gin ShouldBind的介绍和使用
  • 从 vue 源码看问题 — 如何理解 vue 响应式?
  • #【YashanDB认证】#YCA的学习过程总结-之崖山数据库初体验
  • [ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-windows)
  • Ubuntu Docker 安装
  • 【AI】【提高认识】通往通用人工智能之路:现实与幻想的交汇
  • 学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
  • 宠物用品市场分析,宠物用品什么最好卖?
  • unity3d————点乘概念
  • 衡石分析平台系统分析人员手册-业务指标
  • DPDK 简易应用开发之路 5:实现虚拟自学习交换机
  • 【系统集成项目管理工程师】各章考点分析与分值预测
  • C++算法练习-day32——222.完全二叉树的节点个数
  • 使用redis存储签到记录
  • qt管理系统框架(好看界面、漂亮界面、好看的界面、漂亮的界面)
  • 刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:
  • Java开发者的Python快速实战指南:探索向量数据库之文本搜索
  • <<SQL必知必会>>读书笔记(自用)
  • Python OpenCV形态学处理和图像梯度
  • 【计算机方向】中科院一区TOP顶刊,国人发文量友好、IF:13.8,晋升神刊!
  • ValueError: set_wakeup_fd only works in main thread
  • uniapp 使用vue/pwa
  • mfc | mfc集成opencv,实现摄像头监控、拍照、视频图像处理(亮度、对比度、色调、饱和度)功能
  • 我们来学mysql -- 同时使用 AND 和 OR 查询错误(填坑篇)
  • openvino python推理demo