使用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会话
感谢阅读。
使用pyenv与pyenv-virtualenv管理Python版本与虚拟环境的更多相关文章
- pyenv管理python版本
一.介绍 pyenv 是 Python 版本管理工具. pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtua ...
- Mac OS下使用pyenv管理Python版本
问题的由来 在开发过程中,可能会遇到多个版本同时部署的情况. Mac OS自带的Python版本是2.x,自己开发需要Python3.x 系统自带的是2.6.x,开发环境是2.7.x 由于Mac机器系 ...
- 使用 pyenv 管理 Python 版本
http://einverne.github.io/post/2017/04/pyenv.html Posted on 04/22/2017 by Ein Verne | View revisio ...
- 使用pyenv来管理python版本
使用pyenv可以很方便的切换python版本,而不会影响系统的python版本,对需要使用supervisor(仅支持python2)托管程序,项目使用python3开发的情况十分有用 pyenv的 ...
- linux下virtualenv的python版本
virtualenv是python开发中一个重要的工具,它可以帮助我们创建一个干净的python解释环境,创建虚拟环境时,这个虚拟环境的 python版本往往是系统默认的2.x版本.别急,我们只需要一 ...
- conda 管理 python 版本
conda常用命令 查看当前系统下的环境 conda info -e 创建新的环境 # 指定python版本为2.7 conda create -n env_name python=2.7 # 同时安 ...
- 创建指定python版本的虚拟环境
使用virtualenvwrapper管理虚拟环境 鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper. virtualenvwrapper提供了一系 ...
- virtualenv 安装不同版本的虚拟环境的办法
废话不多说直接上代码 virtualenv -p C:\Python27\python2.exe env 上面的*.exe是你要使用的python版本的exe文件的绝对路径. 官方文档参考:http: ...
- Ubuntu通过Pyenv管理python版本
网上安装使用Pyenv的教程很多,但是实测有很多教程有坑,经过多家比较发现下面的教程可用,内容全面,与大家分享. 首先安装pyenv全家桶 curl -L https://raw.githubuser ...
随机推荐
- java之servlet学习基础(一)
这一阵子在学java三大框架.却在学习过程中发现前面的知识已经忘记了.所以决定写一篇博客来总结回顾之前的学习. 1.Servlet是什么? servlet是一个运行在服务器端的小应用程序.通过HTTP ...
- VUE(相关简介及初始)
1.什么是vue Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层, ...
- 第一二次java实训作业
1. 声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果. package java1; public class java1 { static int a=5; pub ...
- AspNet Core 认证
一 Cookie认证 1 services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCooki ...
- VS环境下C++如何检查是否内存泄漏
c++如何检查是否内存泄漏 今天在做OpenGL引擎的时候,突然想到检查一下内存泄漏.具体是我做了一个渲染类Render,将所有世界中存在的物体的指针都存放在这个类中.于是我不免担心,在Render中 ...
- Fiddler功能介绍之Web抓包、远程抓包教程【转载】
一.fiddler简介 简单来说,Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯.网上简介很多,我们不多说. 二.fiddler版本 fiddle ...
- spring学习(二)---依赖注入
spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.busines ...
- Hibernate中的实体规则、对象状态和进阶-一级缓存
一.hibernate中的实体规则 1.实体类创建的注意事项 2.主键类型 3.主键生成策略 (1)代理主键 (2)自然主键 二.hibernate中的对象状态 1.对象分为三种状态 2.三种状态的转 ...
- MySQL事物管理
sql语句对数据库操作构成事物. 事物的特性:ACID •Atomicity(原子性):一个事物要么全都被执行,要么全都不执行,不会存在执行结束在中间环节.如果事物在执行过程中发生异常,则会回滚到事物 ...
- 工作我们是专业的之css规范
我一直认为专业是一种态度.不同于业余,专业代表无论技术高低都会遵守一定的规范,专业代表对某一领域不断的精益求精.专业就是比业余逼格高. 习惯书写规范 css 属性声明的顺序:Positioning(定 ...