详解Mac配置虚拟环境Virtualenv

virtualenv 可以用来建立一个专属于项目的python环境,保持一个干净的环境。只需要通过命令创建一个虚拟环境,不用的时候通过命令退出,删除。

下面介绍一下安装方法:

  • 安装 virtualenv
  • 安装 virtualenvwrapper
  • 安装 Numpy,Scipy,Matplotlib 等

安装 virtualenv

$ sudo pip install virtualenv

然后建立一个测试目录:

$ mkdir testvirtual
$ cd testvirtual

就可以成功创建一个虚拟环境 env1:

$ virtualenv env1

安装 virtualenvwrapper

Virtaulenvwrapper是virtualenv的扩展包,可以更方便地新增,删除,复制,切换虚拟环境。

运行下面命令就安装成功了,默认安装在 /usr/local/bin下面:

$ sudo easy_install virtualenvwrapper

接下来创建一个文件夹,用来存放所有的虚拟环境:

$ mkdir ~/workspaces
$ cd ~/workspaces

但是在使用virtualenvwrapper之前,要运行virtualenvwrapper.sh文件,需要设置环境变量,也就是把下面两行代码写进 ~/.bashrc里,但是我的电脑里并没有~/.bashrc,查了一下解决办法,比如自己创建个bashrc写进去两行代码,也不管用。

export WORKON_HOME=~/workspaces
source /usr/bin/virtualenvwrapper.sh

最后的办法就是,直接在命令行写,成功了:

$ export WORKON_HOME=~/workspaces
$ source /usr/local/bin/virtualenvwrapper.sh

接下来,创建一个或者多个虚拟环境 env1,env2:

$ mkvirtualenv env1

成功后,当前路径前面就会有 (env1)

$ mkvirtualenv env2

下面是一些基本操作命令

  1. 列出虚拟环境:

    $ lsvirtualenv -b
    env1
    env2
  2. 切换虚拟环境:

    $ workon env1
  3. 查看环境里安装了哪些包:

    $ lssitepackages
  4. 进入当前环境:

    $ cdvirtualenv
  5. 进入当前环境的site-packages:

    $ cdsitepackages
    $ cdsitepackages pip
  6. 复制虚拟环境:

    $ cpvirtualenv env1 env3
    Copying env1 as env3...
  7. 退出虚拟环境:

    $ deactivate
  8. 删除虚拟环境:

    $ rmvirtualenv env2
    Removing env2...

安装 Numpy,Scipy,Matplotlib 等

接下来安装Python的各种包,就比较顺畅了,比如安在env1上:

$ workon env1

安装numpy
pip install numpy

安装scipy
$ pip install scipy

安装matplotlib
$ pip install matplotlib

安装ipython
$ pip install ipython[all]

安装pandas
$ pip install pandas

安装Statsmodel
$ pip install statsmodel

安装scikit-learn
$ pip install scikit-learn

按照顺序全部安装成功,后续就可以在虚拟环境上做分析了。


以后每次进入虚拟环境就执行如下代码即可,
不过因为我的环境变量没有写进bashrc里,所以都要多执行两行:

$ cd ~/workspaces
$ export WORKON_HOME=~/workspaces
$ source /usr/local/bin/virtualenvwrapper.sh
$ workon env1

退出虚拟环境就用

$ deactivate



文/不会停的蜗牛(简书作者)
原文链接:http://www.jianshu.com/p/51140800e8b4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
 
 
 

MacOS 下利用 pyenv 管理Python 版本和虚拟环境

2019年02月25日 15:44 ·  阅读 7664

pyenv 介绍

pyenv 是 Python 版本管理工具。pyenv 可以改变全局的 Python 版本,安装多个版本的 Python,设置目录级别的 Python 版本,还能创建和管理 virtual python environments。所有的设置都是用户级别的操作,不需要 sudo 命令。

pyenv 主要用来管理 Python 的版本,比如一个项目需要 Python 2.x,一个项目需要 Python 3.x。 而 virtualenv 主要用来管理 Python 包的依赖,不同项目需要依赖的包版本不同,则需要使用虚拟环境。

pyenv 原理简介

pyenv 通过系统修改环境变量来实现 Python 不同版本的切换。而 virtualenv 通过将 Python 包安装到一个目录来作为 Python 包虚拟环境,通过切换目录来实现不同包环境间的切换。

pyenv 的美好之处在于,它并没有使用将不同的 PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而使后方的系统路径失效。

安装之前

不同系统请参考 Common build problems,安装必须的工具。

pyenv 安装

根据官网的 安装说明 或者 自动安装。 如果使用 Mac 直接使用 Homebrew。安装成功后记得在 .bashrc 或者 .bash_profile 中添加三行来开启自动补全。

# 根据自己的环境配置
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"复制代码

自动安装

pyenv 提供了自动安装的工具,执行命令安装即可:

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash复制代码

保证系统有 git,否则需要新安装 git

手动安装

如果想要更加详细的了解安装过程,可以使用手动安装。将 pyenv 检出到你想安装的目录。建议路径为:$HOME/.pyenv

cd ~
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc复制代码

添加环境变量 PYENV_ROOT 指向 pyenv 检出的根目录,并向 $PATH 添加 $PYENV_ROOT/bin 以提供访问 pyenv 命令的路径。

这里的 shell 配置文件(~/.bash_profile)依不同 Linux 而需作修改,如果使用 zsh 则需要相应的配置 ~/.zshrc

在使用 pyenv 之后使用 pip 安装的第三方模块会自动安装到当前使用 Python 版本下,不会和系统模块产生冲突。使用 pip 安装模块之后,如果没有生效,记得使用 pyenv rehash 来更新垫片路径。

pyenv 常用命令

使用 pyenv commands 显示所有可用命令

Python 配置

# 查看系统当前安装的python列表
pyenv versions

# 列出可安装版本
pyenv install --list 

# 安装指定版本 Python
pyenv install -v 3.5.1

# 卸载指定版本 Python
pyenv uninstall 2.7.3

# 显示当前python安装路径
pyenv which python 

# 创建垫片路径
# 为所有已安装的可执行文件创建 shims
# 如:~/.pyenv/versions/*/bin/*
# 每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
pyenv rehash复制代码

Python 切换

#  设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式
pyenv global <版本号>

# 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
# pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
pyenv local <版本号>

# 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。
pyenv shell <版本号>

# --unset 参数可以用于取消当前 shell 设定的版本。
pyenv shell --unset复制代码

Python 优先级

shell > local > global

pyenv-virtualenv

pyenv-virtualenv 是 pyenv 下基于 virtualenv 的一款插件,通过 pyenv-virtualenv 插件可以很好的和 virtualenv 结合。

安装

使用自动安装 pyenv 后,它会自动安装部分插件,其中包括了 pyenv-virtualenv

若使用 Homebrew 进行安装,则可使用命令 brew install pyenv-virtualenv 安装 pyenv-virtualenv 插件。

这样安装之后需要执行如下配置:

# 使用 zsh shell
vim ~/.zshrc

# 使用系统默认
vim ~/.bash_profile

# 在 `.zshrc` 或 `.bash_profile` 文件最后写入:
# pyenv-virtualenv
if which pyenv-virtualenv-init > /dev/null;
  then eval "$(pyenv virtualenv-init -)";
fi

# 使配置生效
source ~/.zshrc
# or
source ~/.bash_profile复制代码

使用

# 创建虚拟环境
# 若不指定 Python 版本,默认使用当前环境 Python 版本
pyenv virtualenv <Python 版本号> <虚拟环境名称>

# 列出当前虚拟环境
pyenv virtualenvs

# 激活虚拟环境
pyenv activate <虚拟环境名称>

# 退出虚拟环境
pyenv deactivate

# 删除虚拟环境
pyenv uninstall <虚拟环境名称>复制代码

Tips:更换 pip 源

因为国内网络环境,如果在局域网内 pip 下载慢,可以尝试使用阿里云提供的镜像,创建 vim ~/.pip/pip.conf,然后填入:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com复制代码

更多 pip 国内源:

豆瓣:http://pypi.douban.com 阿里云:http://mirrors.aliyun.com/pypi/simple 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple

posted @ 2016-12-18 15:14  Halo3224  阅读(863)  评论(0编辑  收藏  举报
热爱技术的小牛