Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)

“分布式计算”也是当今IT行业的一个非常火热的名词,大家都知道的谷歌机房,还有2013年诺贝尔物理学奖获奖项目“希格斯波色子”,都利用了“分布式计算”来分担一部分计算量从而提高计算效率,尤其在数据科学领域“分布式计算”起到举足轻重的作用。
ParallelPython简称pp,是一个基于Python的分布式计算框架,有很多朋友都会用到。
别的也不多说,回归主题,可能有很多像我一样的刚刚接触Python又独爱win10的菜鸟,在使用“pip install pp”安装pp时都会遇到各种安装错误导致无法安装。

比如这样:Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第1张图片

可能在官网下载了wheel文件安装时也会遇到错误,比如下图:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第2张图片

于是按照提示去检查代码,但并未找到问题:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第3张图片

那这下该怎么办呢?

不用担心,我们先进入pp的官方网站:https://www.parallelpython.com
进入后在上方找到“Downloads”
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第4张图片

然后找到“Windows installer”,这是一个pp的exe格式安装包,官网上有两个“Windows installer”,根据自己需要的版本进行下载。如下图:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第5张图片
笔者下载的是最新的pp-1.6.6.exe md5,下载后会得到如下文件:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第6张图片

现在打开刚刚下载的“pp-1.6.6.exe”,进入到以下安装界面:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第7张图片

点击“下一步”,这时我们进入到配置环境,pp安装时会自动扫描自己电脑里安装的Python环境,有很多朋友会像我一样同时安装了两个甚至多个版本的Python,此时我们只需要选择一个我们要使用的Python版本进行安装,在这里我选择的是Anaconda的Python3.6,至于“Python Directory”和“Installation Directory”的路径也是自动搜索到的,不用管它,然后点击“下一步
(ps:在这里我强烈建议大家使用Anaconda,尤其是处理数据科学的朋友,Anaconda是一个非常棒的管理库的程序,安装时自带了基本所有要用到的库,也可以手动安装一些第三方库,更关键的是,有图形界面,不是黑框框!可以不用pip!像我这种懒蛋,点点鼠标就能安装很多第三方库!)
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第8张图片

进入到以下界面,继续点击“下一步”:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第9张图片

一秒钟后,我们的安装就结束了,点击“完成”:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第10张图片

现在已经安装好了,但是这样就结束工作了吗?

等等!还没完!!!

当我们真的要使用pp时,可能会遇到这个问题:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第11张图片
原因很简单,是因为pp的版本out了。因为这个版本是2017年更新的,而我们用到的Python版本可能是新版,比如我使用的是Python3.6.5,而新版本的语法有些改变,print被改为了print()我们要手动进行更改,还有一些库的名称和内容也有更改,这里就不做过多赘述了。

首先进入到我们的Python所在的文件夹“Lib\site-packages”(Anaconda的用户为:Anaconda3\Lib\site-packages),找到“pp.py”,然后用编辑器将其打开,进行修改:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第12张图片
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第13张图片

改为以下:

在第121行改为:print(sout),
这里写图片描述
第534行至第555行改为:
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第14张图片
这里我附上代码:


        print ("Job execution statistics:")
        walltime = time.time() - self.__creation_time
        statistics = self.get_stats().items()
        totaljobs = 0.0
        for ppserver, stat in statistics:
            totaljobs += stat.njobs
        print (" job count | % of all jobs | job time sum | " \
                "time per job | job server")
        for ppserver, stat in statistics:
            if stat.njobs:
                print( "    %6i |        %6.2f |     %8.4f |  %11.6f | %s" \
                        % (stat.njobs, 100.0*stat.njobs/totaljobs, stat.time,
                        stat.time/stat.njobs, ppserver, ))
        print( "Time elapsed since server creation", walltime)
        print (self.__active_tasks, "active tasks,", self.get_ncpus(), "cores")

        if not self.__accurate_stats:
            print( "WARNING: statistics provided above is not accurate" \
                  " due to job rescheduling")
        print

同时把开头的导入部分改为:

import os
import threading
import logging
import inspect
import sys
import types
import time
import atexit
import pickle
import pptransport
import ppauto
import ppcommon

然后在与“pp.py”相同的根目录“site-packages”文件夹里找到“pptransport.py”,用编辑器打开,把第171至第187行改为:

    def send(self, data):
        size = struct.pack("!Q", len(data))
        t_size = struct.calcsize("!Q")
        s_size = 0
        while s_size < t_size:
            p_size = self.socket.send(size[s_size:])
            if p_size == 0:
                raise RuntimeError("Socket connection is broken")
            s_size += p_size

        t_size = len(data)
        s_size = 0
        while s_size < t_size:
            p_size = self.socket.send(data[s_size:])
            if p_size == 0:
                raise RuntimeError("Socket connection is broken")
            s_size += p_size

好了,此时我们试试能不能正常导入pp了
Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第15张图片
可以了,大功告成!

如果在使用过程中出现了问题,可以与ParallelPython官方进行联系,链接:
https://www.parallelpython.com/component/option,com_contact/Itemid,3/

感谢您的耐心阅读与支持^_^

作者:Nick.ZLS(超可爱的小松松)
猎户座分析团队菜鸟级量化分析师

Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统)_第16张图片

你可能感兴趣的:(Parallel Python(pp)分布式计算框架安装和配置问题(基于win10系统))