Python版本管理-pyenv

pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。

pyenv 的一个典型使用场景就是,比如一个老项目需要使用 Python 2.x ,而另一个新项目需要 Python 3.x 。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题,就无法解决这个问题,这个时候就需要 pyenv。

pyenv 通过修改系统环境变量来实现不同 Python 版本的切换。而 virtualenv 通过将 Python 包安装到一个目录来作为 Python 包虚拟环境,通过切换目录来实现不同包环境间的切换。

pyenv 实现的精髓之处在于,它并没有使用将不同的 $PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 $PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而使后方的系统路径失效。

pyenv常用命令:

pyenv install -l                    #查看可以安装的python版本
pyenv install <版本号>              #下载python版本
pyenv uninstall <版本号>            #卸载python版本
pyenv versions                      #查看所有python版本与环境
pyenv version                       #查看现在使用的版本或环境
pyenv shell <环境名>                #激活环境
pyenv global <环境名>               #设置全局环境
pyenv local <环境名>                #设置当前目录环境
pyenv virtualenv <版本号> <环境名>  #创建新环境

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

或者
git clone GitHub - pyenv/pyenv: Simple Python version management ~/.pyenv

2.配置
如果采用第一种,系统是会告诉你怎么做的(即将最后的三行追加到~/.bash_profile,做环境变量)

export PYENV_ROOT="$HOME/.pyenv"

command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init -)"

如果采用第二种(同样是做环境变量)

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Liunx

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

3.使用变量

source ~/.bash_profile

安装python的不同版本

1.查看可安装的python的版本

pyenv install –list

2.安装python

pyenv install -v 2.7.13

pyenv install -v 3.6.4

卸载python

pyenv uninstall 2.7.13

常见问题及解决方案:

在使用pyenv install安装python,可能会比较慢,甚至下载安装不成功

<1>.这时最好使用是下载好python源码包(Python-3.10.12.tar.xz),然后通过pyenv进行安装(可以下载到境外云服务器)

<2>.将python源码包放置在~/.pyenv/cache/目录中(不要解压 ; 如没有cache就创建一个)

<3>.执行pyenv install 3.6.4

3.查看版本

<1>查看pyenv版本

pyenv –version

pyenv 1.2.3

<2>查看当前python版本

pyenv versions

* system (set by /root/.pyenv/version)

2.7.13

3.6.4

<3>查看当前使用的版本(system 代表当前系统的python 版本)

pyenv version

system (set by /root/.pyenv/version)

4.切换python版本

pyenv global 3.6.4

pyenv version

3.6.4 (set by /root/.pyenv/version)

pyenv versions

system

2.7.13

* 3.6.4 (set by /root/.pyenv/version)

创建虚拟python环境

1.安装插件

创建虚拟的python环境需要pyenv-virtualenv的插件,试着pyenv virtual补全一下,如果存在无需安装

如果不存在,执行如下操作

git clone GitHub - pyenv/pyenv-virtualenv: a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv) ~/.pyenv/plugins/pyenv-virtualenv

echo ‘eval “$(pyenv virtualenv-init -)”’ >> ~/.bash_profile

source ~/.bash_profile

2.创建虚拟环境

pyenv virtualenv 2.7.13 env2713

这是创建了一个名为env2713的python虚拟环境,这个环境的目录位于:~/.pyenv/versions/

3.查看python版本

pyenv versions

* system (set by /root/.pyenv/version)

2.7.13

2.7.13/envs/env2713

3.6.4

3.6.4/envs/env364

env2713

env364

使用python虚拟环境

1.使用虚拟环境

[xxx]#pyenv activate env364

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1’ to simulate the behavior.v364)

[xxx]# python

Python 3.6.4 (default, Apr 19 2018, 10:35:10)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux

Type “help”, “copyright”, “credits” or “license” for more information.

2.退出虚拟环境

pyenv deactivate

3.环境迁移

pyenv virtualenv 2.7.13 env2713

<1>~./pyenv/versions/下名为2.7.14的文件夹拷贝到要迁移的服务器上

<2>修改env364/pyvenv.cfg文件中的home路径(迁移的服务器无需安装任何东西)

[xxx env364]# cat pyvenv.cfg

home =/root/.pyenv/versions/2.7.13/bin

include-system-site-packages = false

version = 2.7.13

注意事项

1.在使用环境的时候不要用sudo,否则就变成使用全局环境了(例如安装django,直接pip install django就行了,不要用sudo pip install. )

2.迁移时,python3由于依赖于相对高一点的glibc库,要注意迁移与被迁移服务器的glibc的版本问题,版本不同时还需要手动安装,更新时注意

(glibc是GNU发布的libc库,即c运行库;glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibclinux系统的依赖)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: pyenv是一种Python版本管理工具,可以用来改变全局的Python版本,安装多个版本Python,设置目录级别的Python版本,以及创建和管理虚拟环境。通过pyenv,可以实现对不同版本Python进行管理,并且可以通过virtualenv设置不同的虚拟环境对Python库的版本进行管理。这样,在程序运行的过程中,可以根据不同的运行需求使用不同的Python版本。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Python版本管理-pyenv](https://blog.csdn.net/peng78585/article/details/131767881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用pyenv管理python版本](https://blog.csdn.net/Zhangsan0219/article/details/121237529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python版本管理工具之pyenv](https://blog.csdn.net/YiJie__ShuSheng/article/details/90448944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值