MAC下pyenv和pyenv-virtualenv插件初探
为什么会使用pyenv和pyenv-virtualenv插件
一般mac自带一个python版本,称为系统版本。对于开发者而言,肯定不够用啦。所以需要在同一个mac上组建不同的开发环境并且不会冲突。
pyenv使你可以在不同python版本之间轻松切换。它简单,低调,并且遵守UNIX的传统:single-purpose tools that do one thing well。
pyenv是基于rbenv和ruby-build项目,对python做了定制修改。
pyenv是第三方的,开源的多版本的Python管理工具,同时支持Python2和Python3.
pyenv-virtualenv插件是虚拟出同一版本的python但是不同依赖库版本的开发环境。这对于在同一台电脑上开发不同项目非常方便。
等等,难道官方没有类似的工具吗?
是有的,在Python3.3标准库中有一个venv模块就是干这个活的,但是,Python3.3之前的版本都不好用,鉴于现在很多项目是基于Python2.x的,所以......
等等,似乎我还听说过virtualenv的东西也有类似的功能?
virtualenv同时支持Python2和Python3,非常流行。它创建的虚拟环境可以指定Python解释器,并选择不继承基础版本的包。
那我还是用virtualenv吧。
是可以的,下面聊聊如何安装pyenv及其pyenv-virtualenv插件。
安装pyenv
通用版
1.clone一个pyenv项目
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
2.定义环境变量
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
如果zsh和bash切换着用,那么./zshrc和./bashrc都要改,不然会出现找不到命令的报错
3.增加pyenv init到shell
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
如果zsh和bash切换着用,那么./zshrc和./bashrc都要改,不然会出现找不到命令的报错
4.重启shell
$ exec "$SHELL"
Mac版
1.用homebrew安装
$ brew update
$ brew install pyenv
2.按照通用版第3步开始安装
安装pyenv-virtualenv插件
通用版
1.clone一个pyenv项目
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
2.定义环境变量
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
对于zsh,使用~/.zshenv替换~/.bash_profile
对于Ubuntu和Fedora,~/.bashrc用替换~/.bash_profile
如果zsh和bash切换着用,那么./zshrc和./bashrc都要改,不然会出现找不到命令的报错
3.重启shell
$ exec "$SHELL"
Mac版
1.用homebrew安装
$ brew install pyenv-virtualenv
2.同上第2步开始做
卸载 pyenv
# 通用
rm -rf $(pyenv root)
# Mac
brew uninstall pyenv
安装并使用python版本
1.查看可用的版本
$ pyenv install --list
2.选择安装一个,如
$ pyenv install 3.6.
小技巧: 执行上面命令后,会从给定的网址中下载安装文件Python-3.6.2.tar.xz。但由于文件很大,下载需要很久。建议做法是:先执行以上命令然后马上中断安装,这样就知道 pyenv 要下载的文件的链接。然后用户自己用其他更快的方式(比如wget、迅雷等等)从该链接中下载安装文件并将安装文件移动到 ~/.pyenv/cache 目录下(该目录默认不存在,用户要自行新建),再执行上面的命令。编译安装本身也需要较长时间。默认安装路径是~/.pyenv/versions/3.6.2/
如果安装报错:
BUILD FAILED (Ubuntu 16.04 using python-build 1.1.3-21-g005a2e8)
解决方法如下:
- Ubuntu/Debian:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev
- Fedora/CentOS/RHEL:
dnf install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel
- Mac OS X:
brew install readline xz
3.查看版本
$ pyenv versions (查看所有版本)
* system (set by /root/.pyenv/version)
2.7.
3.6.
$ pyenv version (version 查看当前版本)
system (set by /root/.pyenv/version)
system 代表当前系统的python 版本
*表示当前的python版本, 可以看到, 我们还在使用的是默认的system 自带的python版本
4.切换python默认版本
$ pyenv global 3.6.
$ pyenv versions
system
2.7.
* 3.6. (set by /root/.pyenv/version)
5.创建一个3.6.2的虚拟环境
$ pyenv virtualenv 3.6. env362
这条命令在本机上创建了一个名为env362的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/
再次输入
$ pyenv versions
如图

env362是3.6.2/envs/env362的软连接
3.6.2是官方版本
5.使用3.6.2的虚拟环境
$ pyenv activate env362
如图所示

下面基本上你就可以在这个虚拟环境里面为所欲为了,再也不用担心系统路径被搞乱的问题了。
6.关闭3.6.2的虚拟环境
$ pyenv deactivate
7.卸载3.6.2的虚拟环境
$ pyenv uninstall env362
在pycharm中使用虚拟环境
打开pycharm选择Preferences|Project interpreter|showall就可以选择了。
MAC下pyenv和pyenv-virtualenv插件初探的更多相关文章
- mac下导出JetBrains IDE Support插件给linux
自从google被和谐以后,上google的store安装插件是如此的费劲,好在mac下的chrome已经装好了,直接导出给linux就可以 mac下chrome的插件目录为 ~/Library/Ap ...
- mac 下安装ES 与 Head插件 以及安装Kibana
一.安装Elasticsearch 在Mac上可以使用brew快速安装Elasticsearch brew install elasticsearch 安装完成后可使用elasticsearch -- ...
- Mac下Eclipse(Oxygen)添加Tomcat插件
1 查看本机Tomcat版本 ~$ sh /Library/Tomcat/bin/catalina.sh version SiegdeMacBook-Pro:bin Sieg$ sh /Library ...
- mac下idea中安装docker插件
idea中安装docker插件: 点击Intellij IDEA->Preferences...->Plugins->Browse repositories...如下: 点击Inst ...
- Mac 下实现 pyenv/virtualenv 与 Anaconda 的兼容
http://blog.csdn.net/vencent7/article/details/76849849 自己一直用的 pyenv 和 pyenv-virtualenv 管理不同的 python ...
- Mac下安装pyenv
mac 用virtualenv安装py3.6的虚拟环境报错(virtualenv -p /usr/bin/python3 env36), 解决的话需要安装zlib包, 然后去掉configure配置里 ...
- Ubuntu下python使用pyenv+virtualenv进行版本和包隔离
安装pyenv 参考:https://github.com/pyenv/pyenv git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo ...
- Mac安装pyenv及pyenv的使用
Mac系统自带的Python是2.7.10,自己需要Python 3.x,此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存,pyenv就是这 ...
- linux下快速安装pyenv管理多版本python
起因 一直服务器python项目都是放docker跑,这次为了测试,不得不在宿主机跑,就必须安装python3.7,但是ubuntu16.04下有点麻烦 尝试 源码安装,懒,算了,也不想污染服务器环境 ...
随机推荐
- npm的理解
一 概念方面 npm的全称是node package manger ,是一个nodejs包管理工具,已经成为非官方的发布node模块包的标准.有了npm可以很快速的找到特定服务器要使用的包,进行下载, ...
- 欢迎大家Follow me!微软MVP罗勇(Dynamics CRM方向)欢迎您!
我是一名八零后,来自湖南乡村,2002年毕业于大连大学工商管理专业,主要靠自学走上了编程之路.从2012年开始接触Dynamics CRM 2011,一直从事Dynamics CRM方面工作,熟悉Dy ...
- php接口加密
在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作. 下边简单介绍一下A ...
- 推荐给IT运维工程师必须学习的4本Linux书籍
我们的人生如游戏,每个人都扮演着不同的角色,有普通玩家.NPC.普通野怪,终极Boss,都有不同的级别之分,我们在技术方面又何尝不是呢,我们大部分人都是普通野怪,遍地都是,很容易被别人虐,没有什么特殊 ...
- PowerShell 远程执行任务
在 linux 中我们可以使用 SSH 执行各种远程操作,同样的在 windows 平台上我们可以通过 PowerShell 获得类似的能力.本文将介绍通过 PowerShell 执行远程操作的基本信 ...
- Win7 JBOSS的下载安装、环境变量配置以及部署
1. 下载安装 http://jbossas.jboss.org/downloads/ 我下载的是:JBoss AS7.1.1.Final 2. 解压安装包 D:\Java\jboss-as-7.1 ...
- electron 使用 node-ffi C++ 动态链接库(DLL)
一.为什么需要使用DLL 需要使用系统 API 操作或扩展应用程序: 需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的: 需 ...
- 【翻译】React vs Angular: JavaScript的双向性
翻译原文链接:https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413 我的翻译小站:http:/ ...
- 本地存储之cookie、localStorage、sessionStorage
一.本地存储分为cookie,以及新增的localStorage和sessionStorage 1.cookie存储在本地,容量最大4k,在同源的http请求时携带传递,损耗带宽,可设置访问路径,只有 ...
- nodejs 搭建 RESTful API 服务器的常用包及其简介
常用包 框架: yarn add express 数据库链接: yarn add sequelize yarn add mysql2 处理 favicon: yarn add serve-favico ...