在上一篇博客中,我介绍了如何在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会话


感谢阅读。

使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境的更多相关文章

  1. pyenv管理python版本

    一.介绍 pyenv 是 Python 版本管理工具. pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtua ...

  2. Mac OS下使用pyenv管理Python版本

    问题的由来 在开发过程中,可能会遇到多个版本同时部署的情况. Mac OS自带的Python版本是2.x,自己开发需要Python3.x 系统自带的是2.6.x,开发环境是2.7.x 由于Mac机器系 ...

  3. 使用 pyenv 管理 Python 版本

    http://einverne.github.io/post/2017/04/pyenv.html   Posted on 04/22/2017 by Ein Verne | View revisio ...

  4. 使用pyenv来管理python版本

    使用pyenv可以很方便的切换python版本,而不会影响系统的python版本,对需要使用supervisor(仅支持python2)托管程序,项目使用python3开发的情况十分有用 pyenv的 ...

  5. linux下virtualenv的python版本

    virtualenv是python开发中一个重要的工具,它可以帮助我们创建一个干净的python解释环境,创建虚拟环境时,这个虚拟环境的 python版本往往是系统默认的2.x版本.别急,我们只需要一 ...

  6. conda 管理 python 版本

    conda常用命令 查看当前系统下的环境 conda info -e 创建新的环境 # 指定python版本为2.7 conda create -n env_name python=2.7 # 同时安 ...

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

    使用virtualenvwrapper管理虚拟环境 鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper. virtualenvwrapper提供了一系 ...

  8. virtualenv 安装不同版本的虚拟环境的办法

    废话不多说直接上代码 virtualenv -p C:\Python27\python2.exe env 上面的*.exe是你要使用的python版本的exe文件的绝对路径. 官方文档参考:http: ...

  9. Ubuntu通过Pyenv管理python版本

    网上安装使用Pyenv的教程很多,但是实测有很多教程有坑,经过多家比较发现下面的教程可用,内容全面,与大家分享. 首先安装pyenv全家桶 curl -L https://raw.githubuser ...

随机推荐

  1. 7F - 无限的路

    甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中 ...

  2. Vue 中使用 viewerjs进行本地上传预览图片

    https://www.cnblogs.com/shenjp/p/9754171.html 如果图片路径是 接口的返回信息的话,将路径存储在数组中,在this.$nextTick中实例化Viewer: ...

  3. springCloud笔记

    分布式和集群的理解:比如在一个厨房有两个厨师,一个炒菜,一个洗菜,各自做不同的事情,但是却在合作,这种叫做分布式,两个都在炒菜或者都在做菜,就叫做集群. eureka的是springCloud的注册中 ...

  4. Redis学习笔记:与SpringBoot结合使用

    首先需要在pom文件中导入相应的Redis依赖(版本可以会变化,下面坐标也可能会变化) <dependency> <groupId>org.springframework.bo ...

  5. 1-spring boot 入门

    我从08年到现在,毕业马山就10年了,一直从事.net平台开发工作(期间应该有1年时间从事java开发). 一.为什么要转java: 1.目前市场很多招聘java架构师的职位,且薪资都不错,但.net ...

  6. PHP常用180函数总结【初学者必看】

    数学函数 1.abs(): 求绝对值 <span style="font-size: 14px;">$abs = abs(-4.2); //4.2<br>& ...

  7. shell脚本编写遍历某一目录下的所有文件

    遍历/root/321321/目录显示里面的所有文件 #!/bin/bash dir=`ls /root//` #定义遍历的目录 for i in $dir do echo $i done

  8. Oracle 12c 安装问题及解决方案

    1. 介绍 今天在我的开发电脑上安装Oracle12c,电脑环境是windows10家庭中文版,安装的Oracle数据库版本Oracle(12.1.0.2.0) - Standard Edition ...

  9. 计算机爱好者协会技术贴markdown第二期

    上一期我们学了多级标题,加粗,加斜以及蛮好看的小方块,这一期来继续学习吧 Txt版本: *上一期说这样可以加斜* _其实这样也可以加斜_ **上一期说这样可以加粗** __其实这样也可以加粗__ ** ...

  10. 2019.03.26 bzoj4444: [Scoi2015]国旗计划(线段树+倍增)

    传送门 题意简述:现在给你一个长度为mmm的环,有nnn条互不包含的线段,问如果强制选第iii条线段至少需要用几条线段覆盖这个环,注意用来的覆盖的线段应该相交,即[1,3],[4,5][1,3],[4 ...