Pycharm中pyenv和virtualenv使用详解

Pycharm中pyenv和pyvenv使用详解

  • 背景
  • python多版本控制工具的差异
    • 1、概念理解
    • 2、对应模块的部署以及使用(这里只介绍 virtualenv和pyenv的使用)
      • 2.1 virtualenv的安装和使用
      • 2.2 pyenv和pyenv-virtualenv的使用(这里实在懒得写了,就用我日常的指令代替,大家自行理会)

背景

由于有一次ELK的升级文档写了半天,却忘记保存,以为自动保存的,结果发现没有了,打击了积极心,很久不曾更新这个博客,但是最近开发一个项目,需要python的多环境,使用的技术pyenv和pyvenv,最初几个概念老是搞混,耽误了很多时间,网上各种博客也没有解释清楚(当然也有可能是自己理解有误),这里就把我的一些理解说出来,供大家参考下:

python多版本控制工具的差异

这里介绍几个工具:pyenv、pyvenv、 venv、virtualenv、pyenv-virtualenv

1、概念理解

virtualenv: 是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换。其实不是非常爱捣腾的话,此工具就已经可以应付同python版本多环境问题了,安装使用也非常简单
virtualenvwrapper: 是一组对virtualenv的扩展(请参阅docs )。 它给你的命令像mkvirtualenv , lssitepackages ,特别是在不同的virtualenv目录之间切换的工作。 如果您想要多个virtualenv目录,此工具特别有用,由于我使用的pycharm来开发的,每个项目里面一个,所以这个对我来说没啥用

pyenv: 用于隔离Python版本,这样可以来系统中随意使用python版本,而不至于影响到线上环境
pyenv-virtualenv: pyenv-virtualenv是与pyenv相同的作者pyenv的插件,可以方便地同时使用pyenv和virtualenv,如果是用vim进行开发的话,那么这个非常的方便,但是由于我使用的是pycharm开发,所以这里我并没有使用.

pyvenv:是Python 3附带的脚本但是 在Python 3.6中弃用 因为它有问题(更不用说令人困惑的名字)。在Python 3.6+中,确切的等价物是 python3 -m venv
venv: 是Python 3附带的一个包,您可以使用它运行 python3 -m venv (虽然由于某种原因,一些发行版将它分成一个单独的发行版包,例如 python3-venv 在Ubuntu / Debian上)。它的用途与此类似 virtualenv,并以非常类似的方式工作,但它不需要复制Python二进制文件(除了在Windows上)。如果你不需要支持Python 2可以尝试.实际上我部分业务的部署是使用的这个模块

2、对应模块的部署以及使用(这里只介绍 virtualenv和pyenv的使用)

2.1 virtualenv的安装和使用

  • 安装 virtualenv:
pip install virtualenv 
  • 使用方法:
#创建
cd project_dir
virtualenv venv
virtualenv -p /usr/local/bin/python3 venv # 指定python版本

#激活虚拟环境(autoenv感兴趣的人可以试试,自动激活)
cd venv
source ./bin/activate

#退出虚拟环境
deactivate

  • pycharm中的使用 (自带了这个模块,只用配置即可)
    Pycharm中pyenv和virtualenv使用详解_第1张图片

    我这里用pyenv管理python模块,所以解释器的路径如上图所示,大家可以根据自己的需要在Base interpreter:那栏里填上自己想要的python版本(相当于指令指定python版本),可以放心使用,不会影响到本身的python

2.2 pyenv和pyenv-virtualenv的使用(这里实在懒得写了,就用我日常的指令代替,大家自行理会)

brew install pyenv
brew intall pyenv-virtualenv
echo -ne “
export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
“ >> ~/.zshrc
brew link zlib --force
#install
CFLAGS="-I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 3.6.3
pyenv rehash
# 卸载
$ pyenv uninstall 2.7.3
#常见错误
1、如果提示没有pip这个指令
pyenv shell 2.7.5
curl https://bootstrap.pypa.io/get-pip.py | python
#pyenv常用指令
pyenv virtualenv 2.7.5 env275
pyenv virtualenv-delete env275
$ pyenv shell pypy-2.2.1
$ pyenv shell —unset
$ pyenv activate env271
# 退回到系统环境
$ pyenv deactivate

Pycharm中pyenv和virtualenv使用详解_第2张图片

你可能感兴趣的:(python模块安装)