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

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

作者: 前行的乌龟 | 来源:发表于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