美文网首页
机器学习 - 环境配置、工具

机器学习 - 环境配置、工具

作者: 前行的乌龟 | 来源:发表于2019-10-30 23:56 被阅读0次
image

机器学习中我们会碰到很多 python 库和软件,还有环境设置,这里集中记录一下,本文涉及以下内容:

  • 明确机器中会有多个 python 环境存在
  • 安装 python 虚拟环境
  • jupyter 安装,使用

一台机器中会有多个 python 环境

机器上可以安装多套版本的 python 的,尤其是 mac,mac 上自带 python2.7,我们安装 python3.7 之后是覆盖不了系统的 python2.7 版本的,所以 mac 上一般都是两套 python,2.7 和 3.7 共存,这就不可避免的会产生兼容问题

  • 我们可以使用:pythonpython3 切换 python 解释器
➜  ~ python
Python 2.7.16 (default, Jun 19 2019, 07:42:24)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
➜  ~ python3
Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 24 2018, 02:44:43)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
  • 使用:which 来查看各版本 python 解释器的安装位置
➜  ~ which python
/usr/local/bin/python
➜  ~ which python3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3

机器内部存在多套 python 环境相互之间是有影响的

  • 不同 python 版本及其开源库之间的兼容问题
  • 机器中的多个项目,可能每个项目都要求有自己的 python 环境

所以就有人提出了给 python 加上虚机环境


安装 python 虚拟环境

python 的虚机环境允许机器上同时安装多套 python,而相互之间不会相互影响。pip命令大家都知道吧,pip是 python 安装库的命令,我们用 pip 安装的库都是安转在系统统一的目录下的,拿 mac 举例来说,就是 python 2.7 和 python 3.7 同时使用这些库,问题是这些库很多是不能同时兼容 2.7 和 3.7 的,所以蛋疼的兼容问题很难搞

有时需要在一台电脑上使用多个版本的python, python框架,数据库等,所以使用虚拟环境,使每个环境在独立的容器中运行。

但是在加入虚拟环境之后就没问题了,在我们指定使用某个 python 的虚拟环境之后,pip 命令安装的库只会安装到指定的虚拟环境下,而不是机器的统一环境下,这样我们就可以给有不同需求的项目配给不同的 python 环境了

目前 python 的虚拟环境使用:virtualenvvirtualenv 的操作叫繁琐,所有之后又出现了 virtualenvwrapper 来对 virtualenv 整合,让使用、切换环境更简单

1. virtualenv 安装使用

  • 安装 virtualenv
pip install virtualenv
  • 创建一个虚拟环境,首先我们得装备一个文件夹,所有的虚拟环境文件都是存储在这里的
$ virtualenv venv # venv是我们给虚拟环境起的名字
  • 给虚拟环境指定 Python解释器路径,安装时就会制定一个 python 解释器,当然之后我们自己也可以指定
$ virtualenv -p /usr/bin/python2.7 venv    # -p 参数指定Python解释器程序路径
  • 切换并开始使用 venv 这个虚拟环境
$ source venv/bin/activate 
  • 退出虚拟环境,此时会回到系统默认的 python 环境中去
$ venv/bin/deactivate
  • 删除虚拟环境,只有删除对应虚拟环境的文件夹就可以了

2. virtualenvwrapper 安装使用

virtualenv 使用,切换,查看都不方便,所以就有了 virtualenvwrapper,virtualenvwrapper 创建,切换环境真的非常简单~

  • 安装 virtualenvwrapper
pip install virtualenvwrapper
pip install virtualenvwrapper-win  #Windows使用该命令
  • bash_profile文件中写入设置
    • WORKON_HOME 是你虚拟环境放置位置的路径
    • 下面这个是virtualenvwrapper.sh文件的路径,virtualenvwrapper.sh文件在你 python 安装位置的bin文件夹里,这里可能每个人都不一样,大家用which查找自己的 python 安装路径,然后一步步去找找这个virtualenvwrapper.sh文件
    • open -e .bash_profile - 打开 bash_profile 文件
    • source .bash_profile - 刷新 bash_profile 文件
export WORKON_HOME=/Users/zbzbgo/python_pip_work
source /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
  • 创建虚拟环境
mkvirtualenv venv 
  • 给虚拟环境设置 python 版本,默认也会设置,不知道 python 路径的,一样用which python/python3去找找看
mkvirtualenv -p /usr/local/python3.5.3/bin/python venv
  • 查看所有虚拟环境
➜  ~ workon
mypy_3.7
  • 切换到指定虚拟环境下
➜  ~ workon mypy_3.7
(mypy_3.7) ➜  ~
  • 退出虚拟环境
(mypy_3.7) ➜  ~ deactivate
➜  ~
  • 删除虚拟环境一样去删除指定环境的文件夹就行了

pip 镜像地址

pip 安装的库都是外网的,在安装某个库时可能就会因为网络链接中断而报错异常,比如这样:

MacBookPro:~ mac$ pip install numpy
Collecting numpy
  Downloading numpy-1.13.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.5MB)
    32% |██████████▎                     | 1.5MB 10kB/s eta 0:04:49Exception:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 232, in _error_catcher
    yield
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 314, in read
    data = self._fp.read(amt)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 60, in read
    data = self.__fp.read(amt)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 448, in read
    n = self.readinto(b)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 488, in readinto
    n = self.fp.readinto(b)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/socket.py", line 575, in readinto
    return self._sock.recv_into(b)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 929, in recv_into
    return self.read(nbytes, buffer)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 791, in read
    return self._sslobj.read(len, buffer)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 575, in read
    v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

为了应对这问题呢,就2个办法:

  • 翻墙,我是推荐翻墙的省事嘛,部分 pip 库系下载速度极慢,大家不要以为死机啦啊~
  • 另一个就是镜像了,镜像我没试过,提供替他人的方案

国内pip镜像地址:

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/ 
豆瓣:http://pypi.douban.com/simple/

使用时在前面加 -i 后跟镜像地址

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider

jupyter

1. 体验下 jupyter

jupyter 是机器学习、数据挖掘领域最好的开发工具了,使用人数最多,口碑最好。大家想象不到的是 jupyter 是 web 版工具,长这个样子:

image
image

为啥大家都推荐使用 jupyter 呢,因为 jupyter 里面可以在一个网页上同时显示:代码、markdown文档、运行结果、图标,这种对数据显示能力是其他IED开发工具远远不能提供的,大家体验一下:

image
image
image

是不是非常NB,这样可以很方便的分享,展示代码和结果,而这在数据挖掘,机器学习中是至关重要的

2. jupyter 的使用

  • 首先我们要构建开发环境 - jupyter 推荐大家使用专用的 python 环境,也就是使用上面介绍的 virtualenv 工具,建立专门的机器开发环境
  • 接下来我们要明确代码保存位置 - 一般来说我们会对每个IDE分别构建一个workspace来存放代码,jupyter 也是一样,这里我在 workspace_python 目录下新建了一个名为 Test 的 python 项目,项目地址:/Users/zbzbgo/workspace_python/Test
  • cd 进入项目地址,启动 jupyter - 启动 jupyter 的命令:jupyter notebook

OK,这样就起来了,jupyter 会自动把你项目中的 jupyter 文件加载进来

3. jupyter 快捷键

我省事截个图了:


image

我们最常用的就是:A、B、D、shift + enter 这几个


相关文章

网友评论

      本文标题:机器学习 - 环境配置、工具

      本文链接:https://www.haomeiwen.com/subject/cnfzvctx.html