Linux 下的 Python 多版本管理(pyenv)

2024-06-02 15:58
文章标签 python linux 管理 版本 pyenv

本文主要是介绍Linux 下的 Python 多版本管理(pyenv),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,我们可以使用virtualenv解决这个问题,它可以为一个应用创建一套“隔离”的Python运行环境。

1|0一. 安装virtualenv 

 

 

sudo apt-get install python-virtualenv

 sudo easy_install virtualenv 

 

2|0二. 创建环境

 

创建python2环境:

 

virtualenv myenv

创建python3环境

 

virtualenv -p /usr/bin/python3 myenv3

如果你的虚拟环境安装库的时候出问题,比如python3环境

需要安装pip3

 

sudo apt-get install python3-pip

 

创建完全隔离的Python环境,实质是创建了一个文件夹,我们的操作都是在这个目录里面进行的。

创建的虚拟环境文件夹的位置在家目录下,名为myenv

 默认情况下,virtualenv会引用系统python环境中 site-­packages 中的库,并将其复制到虚拟python环境的库中。我们可以设置 --no-site-packages 参数取消对系统Python库的引用,以此来创建一个完全纯净的python环境。

 

virtualenv --no-site-packages myenv

 

myenv的lib/目录下,便是我们创建的python虚拟环境,这个默认的python版本由我们的系统python环境决定,比如我本机的python环境为python2.7,virtualenv便默认创建python2.7的环境。当然,我们也可以创建自定义版本的python虚拟环境,这在后文有介绍。  

3|0三. 激活虚拟环境

 

 

cd ~/myenv/bin && source ./activate

 

我们可以看到在命令行的前面已经加上了我们虚拟环境的名字“myenv”,表示当前环境是一个名为myenv的Python虚拟环境。

此时我们便可以在这个虚拟环境中,进行相关操作了,比如安装第三方库。

我们用pip安装第三方库shodan,然后在虚拟环境的myenv/lib/python2.7/site-packages目录下,我们可以找到安装好的库。

4|0四.使用Pyenv管理python版本

 

1.安装 pyenv

 

git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /etc/profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile echo 'eval "$(pyenv init -)"' >> /etc/profile

安装完成以后,需要重新载入配置文件,或者退出以后重新登录,以使/etc/profile中的配置生效。

 我们可以通过下面的命令验证pyenv是否正确安装以及获取pyenv的帮助信息:

1.使用 pyenv

pyenv install
安装一个 Python 版本,到 $PYENV_ROOT/versions 路径下。

 

pyenv install -v 2.7.3

卸载 

 

pyenv uninstall 2.7.3

 

安装python时会报错,比如:

 

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib? WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib? ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?

 

安装相关依赖即可

 

apt-get install bzip2-devel bzip2-libs -y apt-get install sqlite-devel -y apt-get install openssl openssl-devel openssl-static -y apt-get install readline readline-devel readline-static -y

 

pyenv versions
# 查看当前 pyenv 可检测到的所有版本,处于激活状态的版本前以 * 标示。

 

$ pyenv versions system * 3.5.1 (set by /root/.pyenv/version) 3.5.1/envs/flask_py351 3.5.1/envs/pelican flask_py351 pelican

 

创建新的python环境,位于 ~/.pyenv/versions/

 

pyenv virtualenv 2.7.1 env271

切换到新的环境:pyenvactivateenv271退回到系统环境:pyenvactivateenv271退回到系统环境: pyenv deactivate
删除新创建的环境:$ rm -rf ~/.pyenv/versions/env271/


 

 

pyenv rehash
为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims
每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行该命令

 

pyenv install 2.7.3 pyenv rehash

 

pyenv global
设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

 

pyenv global 3.4.0

 

设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。

通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

 

pyenv local 2.7.3

 

设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。

 

pyenv shell pypy-2.2.1 pyenv shell --unset

 

  

参考:https://my.oschina.net/lionets/blog/267469

这篇关于Linux 下的 Python 多版本管理(pyenv)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024428

相关文章

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall