设为首页 收藏本站
查看: 1110|回复: 0

[经验分享] MAC下pyenv和pyenv-virtualenv插件初探

[复制链接]

尚未签到

发表于 2017-11-22 21:06:28 | 显示全部楼层 |阅读模式
为什么会使用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.2
  小技巧: 执行上面命令后,会从给定的网址中下载安装文件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.13
3.6.2


$ pyenv version   (version 查看当前版本)
system (set by /root/.pyenv/version)
  system 代表当前系统的python 版本
  *表示当前的python版本, 可以看到, 我们还在使用的是默认的system 自带的python版本
  4.切换python默认版本



$ pyenv global 3.6.2


$ pyenv versions
system
2.7.1
* 3.6.2 (set by /root/.pyenv/version)
  5.创建一个3.6.2的虚拟环境



$ pyenv virtualenv 3.6.2 env362
  这条命令在本机上创建了一个名为env362的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/
  再次输入



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



$ pyenv activate env362
  如图所示
DSC0001.png

  下面基本上你就可以在这个虚拟环境里面为所欲为了,再也不用担心系统路径被搞乱的问题了。
  6.关闭3.6.2的虚拟环境



$ pyenv deactivate
  7.卸载3.6.2的虚拟环境



$ pyenv uninstall env362

在pycharm中使用虚拟环境
  打开pycharm选择Preferences|Project interpreter|showall就可以选择了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409659-1-1.html 上篇帖子: linux下图片转换工具[【转】 下篇帖子: Linux下用ImageMagick玩图像魔术【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表