Yixuan 厨娘界元老, 书呆界新人.

怎么才能放飞自我的玩儿Python

multi

问题是有一天, 我在群里抱怨, 为毛每次学习 data science 都要重装 Jupyter. 我仿佛一年已经重装了100次 jupyter.

于是大妈怼道, “所以让你装 pyenv 呐, 提醒过很多次了.”

接下来就很像软广对白了.

我: “到底为啥要用 pyenv 啊. 是为了使用 Python3 吗?”  
大妈: “pyenv 可以集中管理配置主要 5 种 100 多版本的 Python 运行环境  
以及具体任何一个版本环境中和工程匹配的任意模块桟.”  

好, 听到这里我还是不甚明白. 总之我就想要一个 jupyter 的推荐环境 Python3(2里面实在太多坑啦), 最好也别影响我的 Python2.
乍一听, pyenv 仿佛是可以解决我这个需求的. 于是开始作…

1. 安装 pyenv 先

完整的 pyenv 安装方式在这里

这里我只说 Mac 的安装方法:

$ brew update  
$ brew install pyenv   

2. pyenv 怎么用

逻辑:

1. 先查查有哪些可以用的版本   
2. 将这个版本下载下来  
3. 切换来...切换去...切换来...切换去    

可用命令:

  1. pyenv install -l
    这个命令会罗列出所有可用的版本.
    pyenvInstallL
  2. pyenv install 3.7.0
    你可以选择一个可用版本来进行安装. 这个命令可以让你在电脑上装上 Python 的 3.7.0 版本. 如果你想装别的可用版本, 可以把 3.7.0 替换成别的东西.
  3. pyenv versions
    安装完毕后, 你可以查查你现在已经拥有什么版本的 Python 了. pyenvVersions
    这是我目前已经有的版本, system 前面有个 小星星, 证明我现在整个电脑的 Python 版本是系统自带的 Python 版本(可以用 python –version 来查询).
  4. pyenv version
    注意, 这个命令符的结尾少了一个 s. 和上一个命令不一样.
    这个命令行的作用是, 看看你目前处在哪个版本里.
    pyenvVersion
    为了方便你看一下这两个命令的区别, 我把效果一起截图啦
  5. pyenv global 3.7.0
    这个命令是, 把整台电脑都变换为 Python 3.7.0 的环境. 变换完之后, 可以用上面学过的 pyenv version 查看一下是否已经变换成功.
  6. pyenv local 3.7.0
    如果我建立了一个项目文件夹, 名叫 Yixuan, 我想把 Yixuan 这个文件夹的环境变为 Python 的 3.7.0 的话, 我就可以:

     cd Yixuan    
     pyevn local 3.7.0  
    

    然后再用 pyenv version 检验一下是否变幻成功即可.

pyenv 有用的命令大概就这么多.

3. 下面我们说说 pyenv-virtualenv

安装文档是这个地址: https://github.com/pyenv/pyenv-virtualenv
不是 virtualenv, 是 pyenv-virtualenv.
我就安错了, 所以吓得我把原地址都放出来了.

安装命令是:

brew install pyenv-virtualenv   

大妈提醒, 里面有巨坑一个. 记得在 /.bash_profile (如果你是 zsh 的话, 建议在 /.zshrc)里写入:

export PATH="~/.pyenv/bin:$PATH"    
eval "$(pyenv init -)"    
eval "$(pyenv virtualenv-init -)"    

大妈提示道: 这三行是他反复明确, 不能缺少和错误的!!!

4. 所以我们稀里糊涂的装上了pyenv-virtual…

那么问题来了: 这玩意儿咋干啥用? 咋用?

  1. 这玩意儿干啥用….
    • 它可以让你在同一 Python 版本下, 创造出不同的工作环境.
  2. 咋用?
    • 比如我现在建立了两个工作文件夹, project_one 和 project_two. 两个文件夹我都打用 Python 3.7.0 开发:

        $ pyenv virtualenv 3.7.0 project_one  
        $ pyenv virtualenv 3.7.0 project_two  
      
    • 但是, project_one 我想用 flask 0.9 版本开发, project_two 我想用 flask 1.0 版本开发:
      这时你就可以现在第一个工作环境中安装,

        $ pyenv activate project_one  
        (project_one) $ pip install flask==0.9  
        (project_one) $ pyenv deactivate  
      
    • 然后我们再在第二个虚拟环境中安装 flask 1.0: 命令如下,

        $ pyenv activate project_two  
        (project_two) $ pip install flask==1.0  
        (project_two) $ pyenv deactivate  
      

至此大功告成, 你可以在任意 Python 版本下, 设置任意的工作环境啦!

Version 1: 2018-07-31
Version 2: 2020-4-21

本作品采用 CC BY-NC-ND 进行许可. 如需转载, 请标明 Yixuan + 源地址

Glider

Too fast to live.