我正在使用PyQt4创建桌面应用程序并尝试将其设为exe文件。我用cx_freeze构建它之后打开了我的应用程序但是我的提交按钮(将数据发送到另一个模块)无效。当我点击提交时,我得到了一个"没有找到模块"错误。有人说它在我的sklearn / externals / joblib / pool.py文件中找不到multiprocessing.pool。
我进入了该文件,并将from multprocessing.pool import Pool
更改为from multprocessing import Pool
,它消除了该错误,但在同一文件中又给了我一个错误。
现在我得到TypeError: method expected 2 arguments, got 3
引用该文件中的class PicklingPool(Pool)
我的应用程序只能正常工作.py文件,所以我不明白为什么用cx_freeze构建会给我一个TypeError。
这是sklearn / externals / joblib / pool.py中的init:
class PicklingPool(Pool):
def __init__(self, processes=None, forward_reducers=None,
backward_reducers=None, **kwargs):
if forward_reducers is None:
forward_reducers = dict()
if backward_reducers is None:
backward_reducers = dict()
self._forward_reducers = forward_reducers
self._backward_reducers = backward_reducers
poolargs = dict(processes=processes)
poolargs.update(kwargs)
super(PicklingPool, self).__init__(**poolargs)
这是multiprocessing / pool.py
中的initclass Pool(object):
def __init__(self, processes=None, initializer=None, initargs=(),
maxtasksperchild=None, context=None):
self._ctx = context or get_context()
self._setup_queues()
self._taskqueue = queue.Queue()
self._cache = {}
self._state = RUN
self._maxtasksperchild = maxtasksperchild
self._initializer = initializer
self._initargs = initargs
...
有人请说明这个错误。