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

在上一篇博客中,我介绍了如何在ubutnu 18.04中安装pyenv。这一次我将介绍如何使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境。

0.相关命令

首先使用pyenv -h命令可以查看可用命令

Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    列出所有pyenv可用命令
   local       显示或设置本地的Python版本
   global      设置或显示全局的Python版本
   shell       设置或显示Shell使用的Python版本
   install     使用python-bulid安装指定Python版本
   uninstall   卸载特定Python版本
   rehash      Rehash pyenv shims (run this after installing executables)更新pyenv垫片路径的哈希值(安装后运行这条命令)
   version     显示当前Python版本以及其路径
   versions    显示pyenv所有可用Python版本
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

1.安装Python前准备

查看所有可用Python版本

$ pyenv install --list

由于我安装前没有装部分依赖,编译时报出一下错误:

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

所以在安装前,先把一些依赖包装上

$ sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libreadline-dev libsqlite3-dev

2.开始安装 Python 3.7.3

我们需要使用install命令安装某一特定版本的pyenv,下面以安装 Python 3.7.3为例:

$ pyenv install 3.7.3 -v

在线安装速度有可能很慢,可以自行到Python官网下载源码编译:

$ mkdir -p ~/.pyenv/cache
$ cd ~/.pyenv/cache
$ # 在https://www.python.org/downloads/source/有不同版本选择
$ wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
$ pyenv install 3.7.3 -v

安装完之后rehash一下

pyenv rehash

3.Python版本控制

查看当前Python版本和所有版本

$ # 查看当前版本, 默认版本是系统内置的版本
$ pyenv version      
system (set by /home/lucas/.pyenv/version)
$ # 查看所有版本,
$ pyenv versions
* system (set by /home/lucas/.pyenv/version)
  3.7.3

下面三条命令涉及Pyenv版本切换的作用范围

$ # 将所有用户的Python版本切换为特定版本号(不推荐,因为有很多程序还是依赖旧版本Python,这样很容易系统崩溃)
$ pyenv global [版本号]
$ # 将当前Shell会话的Python版本切换为特定版本
$ pyenv shell [版本号]
$ # 将当前文件夹及子文件夹的Python版本切换为特定版本
$ pyenv local [版本号]

如果要删除某一Python版本

$ pyenv uninstall [版本号]

4.Python虚拟环境创建

$ # 虚拟环境后面的命名可以随便改,改成自己喜欢的即可
$ pyenv virtualenv 3.7.3 pyweb373

创建完虚拟环境后查看是否创建成功

$ pyenv versions                 
* system (set by /home/lucas/.pyenv/version)
  3.7.3
  3.7.3/envs/pyweb373
  pyweb373

然后就可以进入项目文件夹中,把Python切换到虚拟环境中

$ cd ~/project1
$ pyenv local pyweb373

这样,你就成功地将这个项目的环境换成虚拟环境,可以愉快地安装第三方库、撸代码了。

可能遇到的问题

1.编译报错:No module named '_ctypes'

解决:输入下面命令安装

sudo apt-get install libffi-dev

2.版本切换没效果

解决:新建一个Shell会话


感谢阅读。

转载于:https://www.cnblogs.com/lucas27171/p/10686295.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值