pyenv管理虚拟环境

Ubuntu环境下非root用户指定版本Python的安装及虚拟环境virtualenv的使用 写在前面:服务器上已有Python3.5,但由于项目需要,需要安装Python3.6及以上版本,为了和Python3.5隔离,则需要使用虚拟环境。 所以本教程的适用场景为:没有权限的非root用户安装指定的Python版本,并创建虚拟环境,安装需要的各种包。 主要分为两个步骤:安装Python;创建虚拟环境 一. 安装python(我需要的是python3.6,故下面都以python3.... 阅读详情

pyenv的安装和使用

作为主流开发语言, 用Python 开发的程序越来越多。 方便的是大多Linux系统里面都默认集成了python, 开发可以随时随地开始。 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的。 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到两种python版本, 切换起来更是麻烦。

本文将介绍如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境。

首先我们搞清楚pyenv 和virtualenv分别是干什么的。

pyenv可以帮助你在一台开发机上建立多个版本的python环境, 并提供方便的切换方法。

virtualenv则提供了一种功能, 就是将一个目录建立为一个虚拟的python环境, 这样的话, 用户可以建立多个虚拟环境, 每个环境里面的python版本可以是不同的, 也可以是相同的, 而且环境之间相互独立。

如果解释得还不是很清楚的话,我们举例说明。

首先我们可以用pyenv 安装多个python 版本, 比如安装了2.5, 2.6, 3.3 三个版本。 用户可以随意切换当前默认的python版本。 但这时候, 每个版本的环境仍是唯一的, 如果我们想在环境中安装一些库的话, 还是会导致这个版本的环境被修改。 这个时候, 如果我们用virtual env去建立虚拟环境, 就可以完全保证系统路径的干净。无论你在虚拟环境中安装了什么程序, 都不会影响已安装版本的系统环境。

说了这么多, 还是动手实践一下来得实在。本文的例子是在一台干净的Ubuntu机器上进行的

1. 首先我们安装pyenv

因为我的Ubuntu是干净的, 所以还需要先安装curl 和 Git

sudo apt-get install curl git-core

接下来安装pyenv

curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

这个命令会把pyenv安装到当前用户的 ~/.pyenv目录下.

同时, 我们还需要把下面代码存到~/.bashrc文件中:

复制代码

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
  export PATH="${PYENV_ROOT}/bin:${PATH}"
  eval "$(pyenv init -)"
fi

复制代码

这段代码的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面运行pyenv命令。 保存在~/.bashrc 文件中是为了每次用户登陆后自动生效。

所以如果你是第一次运行命令并且没有注销的话, 这一段是不会生效的, 我们还需要运行下面的命令令其生效

source ~/.bashrc

然后就可以直接在命令行里面敲pyenv了。

2. 安装一些必须的包

sudo apt-get build-dep python2.7

后面安装其他版本python的时候会需要这些包

3. 安装某个版本的python

首先我们可以查看一下有哪些版本的python 可以安装

pyenv install --list

结果如下:

复制代码

2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
...

复制代码

接下来, 作为例子我们安装两个版本 (2.7.1 和 3.3.5)

pyenv install 2.7.1
pyenv install 3.3.5

安装完毕后, 我们可以查看安装的情况

pyenv versions

输出结果如下:

* system (set by /home/tony/.pyenv/version)
  2.7.1
  3.3.5

简单来说我们已经在这台机器上安装了三个版本的python

system 代表当前系统的python 版本

2.7.1 和 3.3.5是我们用pyenv安装的

*表示当前的python版本, 可以看到, 我们还在使用的是默认的system 自带的python版本

4. 切换python版本做一下测试

既然已经安装了两个其他版本的python, 我们来做一下测试

pyenv global 2.7.1

这条命令就是将当前python 版本切换到2.7.1

再次运行 pyenv versions, 结果如下:

  system 
* 2.7.1 (set by /home/tony/.pyenv/version)
  3.3.5

可以看到当前的python 版本已经切换到2.7.1了, 如果还不放心, 直接运行 ‘python’ 命令进行验证:

tony@ubuntu:~$ python
Python 2.7.1 (r271:86832, May  9 2014, 01:07:17) 
[GCC 4.8.2] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>> 

这里可以清楚看到, 当前版本确实是2.7.1

同理, 我们可以继续用python global在各个版本之间进行切换, 如果要切换回系统版本, 请用:

pyenv global system

如果要卸载某个版本的python, 可以这样:

pyenv uninstall x.x.x

5. 利用virtualenv 创建虚拟python环境

现在我们已经安装了多个python版本,但是这还不够, 某些有洁癖的程序员是一定要系统环境足够干净的,这时候我们可以使用virtualenv来创建虚拟python环境

virtualenv本是一个独立的工具,官网在这里:https://pypi.python.org/pypi/virtualenv

幸运的是,如果你是安装我们前面的方式安装pyenv的,那它已经帮我们以plugin的形式安装好了virtualenv, 我们只要使用就好了

首先我们创建一个2.7.1的虚拟环境

pyenv virtualenv 2.7.1 env271

这条命令在本机上创建了一个名为env271的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/

注意,命令中的 ‘2.7.1’ 必须是一个安装前面步骤已经安装好的python版本, 否则会出错。

然后我们可以继续通过 ‘pyenv versions’ 命令来查看当前的虚拟环境, 结果如下:

* system (set by /home/tony/.pyenv/version)
  2.7.1
  3.3.5
  env271

这里我们可以看到, 除了已经安装的python版本, 我们多出了一个env271的python虚拟环境

6. 切换和使用新的python虚拟环境

切换到新的虚拟环境的命令为

pyenv activate env271

接下来我们的python环境就已经切换到2.7.1的虚拟环境了, 运行 ‘python’ 命令认证

(env271)tony@ubuntu:~$ python
Python 2.7.1 (r271:86832, May  9 2014, 01:07:17) 
[GCC 4.8.2] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>

可以看到, python版本已经是2.7.1, 而且是在虚拟环境之中 (env271)

下面基本上你就可以在这个虚拟环境里面为所欲为了 ? 再也不用担心系统路径被搞乱的问题了。

如果要切换回系统环境, 运行这个命令即可

pyenv deactivate

那如果要删除这个虚拟环境呢? 答案简单而且粗暴,只要直接删除它所在的目录就好:

rm -rf ~/.pyenv/versions/env271/
Python虚拟环境管理venv+pyenv 在不同的 Python 项目或者不同的目录下,可以创建相同名字的 venv 虚拟环境。在不同的 Python 项目或者不同的目录下,可以创建相同名字的 venv 虚拟环境。在不同的 Python 项目中,为避免依赖冲突,或者是需要特定的 python 版本。可用于创建轻量级的虚拟环境,是 Python3 中内置的一个模块,不需要额外安装。虚拟环境只用创建一次,下次启动项目时,直接激活虚拟环境,然后就能运行项目了。虚拟环境只用创建一次,下次启动项目时,直接激活虚拟环境,然后就能运行项目了。 阅读详情

相关推荐

使用 pyenv 管理 python 虚拟环境

pyenv 使用 pyenv 可以: 自由切換不同的 python 版本 自由切換不同的 virtualenv(即 virtualenv 的功能) global 與 local 環境的區分(可以對某個具體的目錄使用指定的 python 版本) 集中式管理(配置、包、虛擬環境都在 ~/.pyenv 目錄中) install, update, uninstall install the githu...

Marshall001的博客 421

python 版本管理工具 pyenv

什么是pyenv: pyenv是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源。 为什么使用pyenv: 为了在同一系统环境中使用不同版本的python,在项目开发中保证不同的包环境互不干扰。 安装Pyenv: 1、安装git yum -y install git 2、安装Python编译依赖 yum -y install gcc make...

网子世界 1万+

pyenv管理多版本python和虚拟环境常用命令

一直以来是我是采用virtualenvwrapper来管理不同项目的python环境,最近看了下作者的github主页,发现有3年没更新了,不知道作者以后是否还维护此项目,所以就找了一下其他管理python多版本的工具,发现了pyenv,看了下挺不错的,拿来测试下。pyenv原理pyenv 的原理,简单的说就是在系统PATH 最前面插入一个 $(pyenv root)/shims 目录。这样, py

autista的博客 3400

用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境

作为主流开发语言, 用python 开发的程序越来越多。 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始。 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的。 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到

Xiao_Qiang_的专栏 1643

Pyenv Mac python虚拟环境的管理

pyenv Mac Python虚拟环境管理

lelziek的博客 484

Linux系统Python虚拟环境管理软件pyenv

在学习Python的时候,最经常遇到的问题就是包版本的问题,比如说这个应用需要libtool包的1.1.1版本,而之前开发的应用则只能运行在1.0.1版本上。那么怎么让两个应用都能够正常运行起来呢?聪明的开发者们提出了虚拟环境的概念,就像电脑的虚拟机一样,创建一个虚拟环境就像创建了虚拟机。你在虚拟环境里做任何操作都不会影响到其他的虚拟环境,也不会影响到系统环境。同时你也可以在你的虚拟环境里安装任何...

shark_tear的专栏 607

【Python版本切换解决方案】【干货】:pyenv介绍、pyenv下载、pyenv安装、pyenv配置、pyenv使用

Python版本切换解决方案、pyenv介绍、pyenv下载、pyenv安装、pyenv配置、pyenv使用

一起寻找DX3906-探索未知 3308

Bugku中的source

进入环境后 我们首先查看源码可以得到一个flag 这肯定是个假的(已经提交过了确实是个假的) 题目提示要用Linux 这里使用的是kali 我们首先dirsearch一下这个网站 可以看到有.git文件泄露 也可以点开那个链接但是在里面没有找到flag 然后选择下载这个.git文件 然后进入这个文件夹 输入git reflog查看文件状态 可以看到有四个都有flag is here 一个一个查看git show 然后在40c6d51中发现了我们需要的fl

A272036149的博客 1011

Ubuntu安装pyenv,配置虚拟环境

注意:使用 pyenv 管理 Python,必须是用 pyenv 安装的 Python 才行,系统以前有的,需要重新用 pyenv 安装;使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/xxx 下,不会和系统模块发生冲突;使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库。1、安装完python 之后,创建虚拟环境。pyenv可以管理不同的python版本。6、删除指定的python版本。1、安装pyenv的依赖库。7、安装python。

◝(⑅•ᴗ•⑅)◜..°♡的博客 3867

开放平台 - 互动玩法演进之路

随着直播业务和用户规模日益壮大,如何丰富直播间内容、增强直播间内用户互动效果,提升营收数据变得更加关键。

bilibili_TC的博客 1739

手把手教你解决COLMAP编译中的Ceres CUDA支持问题(附详细配置步骤)

本文详细解析了COLMAP编译中Ceres CUDA支持问题的完整解决方案,包括环境准备、Ceres Solver的CUDA编译配置、COLMAP的CUDA集成配置等关键步骤。通过优化CMake参数和解决常见错误,帮助技术人员充分利用GPU加速优势,提升三维重建效率。

vodka的博客 861

pyenv虚拟环境管理

一. pyenv 简单介绍 在日常运维中, 经常遇到这样的情况: 系统自带的 Python 是 2.x,而业务部署需要 Python 3.x 环境, 此时需要在系统中安装多个 Python 版本,但又不能影响系统自带的 Python 版本,即需要实现 Python 的多版本环境共存, pyenv 就是这样一个 Python 版本管理器, 可以同时管理多个 python 版本共存! 简单的说,pye...

FatPuffer 2283

kubedns-coredns部署pod出现not ready问题

文章目录遇到的问题1、发现问题2、排查问题3、解决方法 coredns的实例health_check不通过的问题,排查和解决方法 遇到的问题 1、发现问题 pod启动但是未ready 查看是readiness失败 使用对应的URL进行curl,发现真的返回503 2、排查问题 查看错误日志,发现一堆这个错误"waiting on : kubernetes" 网上相关的问题解答 这个跟测试场景不一样,这个案例是开了防火墙,可以确认我这个案例的机器没有开防火墙,但它提醒了一点,coredns是需要访问ap

u012533481的博客 2844

使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境

在上一篇博客中,我介绍了如何在ubutnu 18.04中安装pyenv。这一次我将介绍如何使用pyenv进行Python版本管理。 首先使用pyenv -h命令可以查看可用命令 Usage: pyenv <command> [<args>] Some useful pyenv commands are: commands 列出所有pyenv可用命令 lo...

Lucas27171的博客 840

保姆级教程:用CameraX API快速搞定Android多摄像头切换与预览(附避坑指南)

本文提供了一份详细的CameraX API教程,帮助开发者快速实现Android多摄像头切换与预览功能。通过简化API设计和生命周期感知能力,CameraX大幅降低了开发复杂度,同时解决了多摄像头兼容性、预览优化等常见问题。文章包含完整代码示例和实战避坑指南,特别适合需要高效集成相机功能的Android开发者。

weixin_42699679的博客 166

YOLOv11的扩散模型去噪预处理-(在推理前对低质量图像进行增强)

摘要: 扩散模型与YOLOv11的结合有效提升了复杂场景下的目标检测性能。针对低质量图像(如噪声、低光照)导致YOLOv11特征提取退化的问题,研究提出了一种基于条件扩散模型的预处理方法。通过语义引导的渐进式去噪,在保留关键检测特征的同时,显著改善了图像质量。技术核心包括:1)利用YOLOv11浅层特征作为条件输入;2)交叉注意力机制实现任务感知去噪;3)知识蒸馏与潜空间扩散加速推理。实验表明,该方法使mAP50提升19%,在15步内达到传统百步去噪效果,平衡了精度与实时性需求,为鲁棒性目标检测提供了新思路

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 877

pyenv-virtualenv Python虚拟环境管理终极指南

pyenv-virtualenv是一个pyenv插件,为类UNIX系统提供Python虚拟环境和conda环境管理功能。它能帮助开发者轻松创建、切换和管理多个独立的Python环境,避免不同项目间的依赖冲突,是Python开发必备工具。 ## 为什么选择pyenv-virtualenv? 在Python开发中,不同项目可能需要不同版本的Python解释器和依赖库。使用pyenv-virtual

gitblog_00032的博客 1046

大数据架构中的数据治理:元数据管理与数据血缘追踪实践

本文将聚焦大数据架构中数据治理的两大核心支柱——元数据管理与数据血缘追踪元数据管理的目标、类型与实施步骤(从需求分析到工具落地);数据血缘追踪的技术实现(静态解析、动态捕获、混合方案)与应用场景;如何将两者结合,构建完整的数据治理体系,并通过真实案例展示落地效果。元数据管理:定义了业务/技术/操作元数据,讲解了工具选型(如Apache Atlas)、采集(Hook/API)、存储(关系库+图数据库)、应用(数据发现、质量监控);数据血缘追踪。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 868

python虚拟环境 pyenv_Python多版本管理和虚拟环境维护(pyenv, pyenv-virtualenv)

前言需求在日常开发的过程中经常会遇到以下场景:系统预装Python是2.6,项目需要Python2.7中的新特性由于python的版本割裂, Python3 和 Python2想要共存不通项目对于同一个依赖包的版本要求不同,希望基于项目的环境独立virtualenv, virtualenvwrapper等工具解决了上述问题中一的部分,也有着自身局限和不够优雅的地方,例如,将不同的 $PATH 植入...

weixin_39662721的博客 614

OpenCV实现文档扫描OCR识别(基于Python + OpenCV,含完整代码)

在当今数字化时代,文档处理的自动化需求日益增长。文档扫描OCR(Optical Character Recognition,光学字符识别)技术成为了将纸质文档转换为可编辑电子文本的关键手段。通过Python与OpenCV库的结合,我们能够实现高效、准确的文档扫描OCR识别。这一技术在办公自动化、数字图书馆、档案管理等众多领域都有着广泛的应用。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2031

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Claude HUD 自定义布局完整指南:5 步排好元素顺序,打造你的专属 HUD 配置

Claude HUD 是一款 Claude Code 插件,它常驻在你输入框下方,实时盯住上下文占用、工具活动、代理进度与待办状态。这篇文章带你一步步完成自定义布局,把元素顺序调成最顺手的样子。 ## 先看懂它显示什么 在动手改之前,先搞清楚 HUD 到底能摆哪些"零件"。分两类: **基础元素(默认常开)** | 元素 | 显示什么 | 默认状态 | |------|----------

gitblog_00284的博客 1006

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python虚拟环境和pyenv_使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境

在上一篇博客中,我介绍了如何在ubutnu 18.04中安装pyenv。这一次我将介绍如何使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境。0.相关命令首先使用pyenv -h命令可以查看可用命令Usage: pyenv []Some useful pyenv commands are:commands 列出所有pyenv可用命令local 显示或...

weixin_39968724的博客 184

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python虚拟环境和pyenv_MacOS 下利用 pyenv 管理Python 版本和虚拟环境

pyenv 介绍pyenv 是 Python 版本管理工具。pyenv 可以改变全局的 Python 版本,安装多个版本的 Python,设置目录级别的 Python 版本,还能创建和管理 virtual python environments。所有的设置都是用户级别的操作,不需要 sudo 命令。pyenv 主要用来管理 Python 的版本,比如一个项目需要 Python 2.x,一个项目需要...

weixin_39843151的博客 290

pyenv创建和管理Python虚拟环境详解

在Python开发中,项目依赖冲突是常见难题。本文将详细介绍如何使用`pyenv`和`pyenv-virtualenv`工具,轻松实现多版本Python管理和项目独立虚拟环境搭建,让你的开发工作更高效。

weixin_45927422的博客 1850

pyenv-virtualenv:Python虚拟环境管理的终极利器

pyenv-virtualenv 是一款专为 Python 开发者设计的虚拟环境管理工具,作为 pyenv 的插件,它能帮助你在 UNIX 类系统上轻松创建、切换和管理多个隔离的 Python 环境,彻底解决“依赖冲突”和“版本混乱”的开发痛点。无论是新手还是资深开发者,都能通过它实现项目环境的完美隔离,让 Python 开发更高效、更省心。 ## 🌟 为什么选择 pyenv-virtua

gitblog_00836的博客 790
上一篇: Flask初级项目
下一篇: Django Form表单
Are you ready
博客等级 码龄8年 312粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值