Python pathos池语句被挂起

Python pathos池语句被挂起,python,pathos,Python,Pathos,我的程序似乎没有超出Pool(5)语句的范围。我在windows服务器上使用Python3.6,这是一台64位虚拟机,有8个虚拟CPU 代码如下 import pathos.multiprocessing as mp poolObj = mp.Pool(5) docs = poolObj.map(nlp,textStr) 它在语句池(5)处挂起。我也尝试了ProcessingPool(5),同样的结果。我是《悲情》的作者。第一。。。如果您发布一段代码片段,试图回答您的问题的人可以

我的程序似乎没有超出Pool(5)语句的范围。我在windows服务器上使用Python3.6,这是一台64位虚拟机,有8个虚拟CPU

代码如下

import pathos.multiprocessing as mp
 poolObj = mp.Pool(5)     
 docs = poolObj.map(nlp,textStr)

它在语句池(5)处挂起。我也尝试了ProcessingPool(5),同样的结果。

我是《悲情》的作者。第一。。。如果您发布一段代码片段,试图回答您的问题的人可以执行该代码片段,这会有所帮助。这有助于您获得更好的答案,因为它可以得到更好的诊断(在本例中,这可能是一个序列化问题,或者可能是
freeze\u支持问题,或者可能是一个生成问题)

在了解更多细节后,我可以提出以下建议:

  • 你有C编译器吗?如果没有,那么您实际上没有使用
    multiprocess
    ,这正是
    pathos
    打算使用的。这是一把叉子 具有更多功能的
    多处理
    。如果答案是 不,那么您需要安装一个,然后重新生成
    多进程
  • 如果您使用的是
    多进程
    (见上文),但是,在windows上,您需要使用
    pathos.helpers.freeze\u支持
    。上的池是必需的 在大多数情况下都是窗口
  • 如果以上两项都可以,那么我会检查你的目标是否正确 序列化,并且在windows上可以确认对象是否将被pickle 使用
    dill正确执行
    多进程
    。检查
    (在
    dill
    包装)

它也可能是上述一个或多个的组合。

我不使用
pathos
,但我会假设它将受到与常规
多处理相同的限制,即在Windows上,多处理代码应该被
屏蔽,如果它看起来像是特定的“窗口”本节不在中,但作了更一般的说明。我不知道这是为什么。上面的代码在函数main()中,如果name='main':虚拟化,则从函数main()中调用该函数?可能有一个控制过程循环的装置。您需要获得虚拟机软件提供商的支持。您键入的问题似乎与Python或Python模块无关。好的,那么需要进行任何特殊设置才能在VM上启用多处理吗?您知道这个设置吗?我以前没有C编译器,但现在安装了tcc。我使用conda forge安装了pathos,它还安装了多进程和dill。根据[link]()上的文档,建议不要强制使用python 3.3+C编译器。考虑到我仍然需要一个C编译器,我仍然需要下载多进程并单独构建,还是只需要从conda forge安装Paths就可以了?我会重新构建
多进程
,因为您添加了一个C编译器。您可以通过执行
import\u multiprocess
来测试所需的C库是否已构建。如果此操作成功,则表示您已通过构建问题。我安装了tcc并将其置于C:/Apps/tcc下,并将其添加到系统路径。从GitHub下载多进程源代码,构建并安装。我得到一个警告,“C扩展可能无法编译”。setup.py是否希望C编译器位于特定路径?我们可以指定它吗?我可以调用
import\u multiprocess
,所以c编译问题似乎不存在。Pool(5)语句也在工作。它挂在Pool.map(nlp,textStr)语句上。我用dill.pickles(textStr)进行了检查,结果为真。我已经将完整的代码放在了GitHub的多进程问题上