使用多处理时 Python rpy2 和 matplotlib 发生冲突

2023-12-25

我正在尝试使用多重处理来计算和生成绘图。在 Linux 上,下面的代码可以正确运行,但在 Mac (ML) 上却不能正确运行,并出现以下错误:

import multiprocessing
import matplotlib.pyplot as plt
import numpy as np
import rpy2.robjects as robjects

def main():
    pool = multiprocessing.Pool()
    num_figs = 2
    # generate some random numbers
    input = zip(np.random.randint(10,1000,num_figs), 
                range(num_figs))

    pool.map(plot, input)

def plot(args):
    num, i = args
    fig = plt.figure()
    data = np.random.randn(num).cumsum()
    plt.plot(data)

main()

Rpy2 是 rpy2==2.3.1,R 是 2.13.2(我无法在任何 mac 上安装 R 3.0 和 rpy2 最新版本而不出现分段错误)。

错误是:

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().
Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.
The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().

我已尽一切努力来了解问题所在,但没有运气。我的配置是:

Danials-MacBook-Pro:~ danialt$ brew --config
HOMEBREW_VERSION: 0.9.4
ORIGIN: https://github.com/mxcl/homebrew
HEAD: 705b5e133d8334cae66710fac1c14ed8f8713d6b
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: dual-core 64-bit penryn
OS X: 10.8.3-x86_64
Xcode: 4.6.2
CLT: 4.6.0.0.1.1365549073
GCC-4.2: build 5666
LLVM-GCC: build 2336
Clang: 4.2 build 425
X11: 2.7.4 => /opt/X11
System Ruby: 1.8.7-358
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

有任何想法吗?


当您在主线程之外执行 GUI 操作时,在 Mac OS X 上会发生此错误,这正是您通过将绘图函数转移到 multiprocessing.Pool 所做的事情(我认为出于同样的原因,它在 Windows 上也不起作用- 因为 Windows 有相同的要求)。我可以想象它工作的唯一方法是使用池生成数据,然后让主线程在循环中等待返回的数据(队列是我通常处理它的方式......)。

这是一个示例(认识到这可能不会达到您想要的效果 - “同时”绘制所有图形? - plt.show() 块,因此一次只绘制一个图形,我注意到您的示例中没有它代码 - 但如果没有,我在屏幕上看不到任何东西 - 但是,如果我把它拿出来 - 没有阻塞,也没有错误,因为所有 GUI 功能都发生在主线程中):

import multiprocessing
import matplotlib.pyplot as plt
import numpy as np
import rpy2.robjects as robjects

data_queue = multiprocessing.Queue()


def main():
    pool = multiprocessing.Pool()
    num_figs = 10

    # generate some random numbers
    input = zip(np.random.randint(10,10000,num_figs), range(num_figs))  
    pool.map(worker, input)

    figs_complete = 0
    while figs_complete < num_figs:
        data = data_queue.get()
        plt.figure()
        plt.plot(data)
        plt.show()
        figs_complete += 1

def worker(args):
    num, i = args
    data = np.random.randn(num).cumsum()
    data_queue.put(data)
    print('done ',i)

main()

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多处理时 Python rpy2 和 matplotlib 发生冲突 的相关文章

  • 如何使用 django (python) 和 s3 上传文件?

    我正在寻找一种将文件上传到 s3 的方法 我正在使用 django 我目前正在使用亚马逊的 python 库进行上传以及以下代码 View def submitpicture request fuser request session lo
  • 使用 Python 在 Google Cloud Storage 存储桶中创建/上传新文件

    如何使用 Python 和可用的客户端库在 Google Cloud Storage 中创建新的空文件 或者如何使用 blob 函数 upload from filename 将新文件上传到选定的存储桶 要初始化 blob 对象 我们应该在
  • 如何使用 lxml 解析包含前缀但没有名称空间声明的 XML?

    我有一堆使用前缀但没有相应名称空间声明的 XML 文件 像这样的东西
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • Python 中的十进制到二进制半精度 IEEE 754

    我只能使用以下命令将十进制转换为二进制单精度 IEEE754struct pack模块 或者使用相反的方法 float16 或 float32 numpy frombuffer 是否可以使用 Numpy 将十进制转换为二进制半精度浮点数 我
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 如何限制scrapy请求对象?

    所以我有一个蜘蛛 我认为它正在泄漏内存 结果当我检查 telnet 控制台 gt gt gt prefs 时 它只是从链接丰富的页面中抓取了太多链接 有时它会超过 100 000 个 现在我已经一遍又一遍地浏览文档和谷歌 但我找不到一种方法
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词
  • Python matplotlib 在鼠标悬停时不显示完整日期

    我有一个数据框日期索引 and 温度值 Date Temperature 2015 10 21 9 118 2015 10 22 9 099 2015 10 23 8 945 2015 10 26 8 848 2015 10 27 8 84
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 设置网格列/行的最小、最大和默认长度

    我知道新的minmax https developer mozilla org en US docs Web CSS minmax允许指定网格列的最小和最大宽度的函数 然而 当使用此函数时 我不清楚列的 默认 宽度是什么 以及如何指定它 在
  • 在Android上过滤目录中的文件

    在我的应用程序中 我从图库中的文件夹中获取图像并将其保存到数组列表中 现在我只想提取扩展名为 jpg 的文件 我该怎么做 保存到数组列表的代码是 private List
  • 使用 DQL 查询返回外键

    我有一个像这样的 InvoiceItem 实体 Entity class InvoiceItem ManyToOne targetEntity Invoice inversedBy items JoinColumn name invoice
  • grails 2.3:测试应用程序无法识别测试

    我正在使用最近发布的 grails 2 3 0 不幸的是 测试应用程序无法识别测试 这是我为产生问题所做的事情 首先 创建一个新应用程序并创建一个控制器 grails create app firstApp cd firstApp grai
  • glClearColor() 将 iPhone 的渲染利用率推至 27%

    寻找答案的结果是这个问题 https stackoverflow com questions 872560 512x512 texture causing huge gpu stress on iphone despite tiling 我
  • Python:使用minidom搜索具有特定文本的节点

    我目前面临的 XML 看起来像这样
  • 存储来自 Google Places API 的数据

    如果这个问题听起来有点傻 请不要介意 我正在尝试了解有关 Google Places API 的更多信息 我有兴趣做一个类似于airbnb com的实现 检查顶部的搜索功能 它在自动建议中显示 powered by google 在我们的地
  • 2 个给定数字之间的双精度数密度

    重要编辑 最初的问题是关于获取双精度数和分数的密度 当我得到双精度数而不是分数的答案时 我正在改变主题以结束这个问题 原问题的另一半是here https stackoverflow com questions 48245279 densi
  • Win32 防止窗口“折断”

    如何为我的应用程序禁用 Windows 7 的捕捉功能 以编程方式 或者有什么方法可以检测应用程序是否已被捕捉 并专门调用API函数来取消捕捉 调用 SetWindowPos 或 ShowWindow 无法正确取消对齐 SW MAXIMIZ
  • 使用python中的struct模块打包和解包可变长度数组/字符串

    我试图掌握 Python 3 中二进制数据的打包和解包 它实际上并不难理解 除了一个问题 如果我有一个可变长度的文本字符串并且想要以最优雅的方式打包和解包它怎么办 据我从手册中可以看出 我只能直接解压固定大小的字符串 在这种情况下 是否有任
  • MS Access VBA 捕获 SQL Server 连接错误

    我在获取 Access 2010 VBA 来捕获与 SQL Server 2008 连接以链接表的错误时遇到问题 我收到错误并弹出窗口 可能是来自 ODBC 驱动程序 我想抑制这些并自己处理错误 我知道 DAO errors 和 ADO e
  • Jquery 添加值以选择选项

    我已经用谷歌搜索这个选项很多天了 但找不到解决方案 我想要的是 我有两个选择框 第一个选择框有国家 地区名称 第二个选择框为空 我想要的是 当我从第一个选择框中选择任何国家 即英国 时 应该运行 php 查询以从表中获取所有城市名称 然后使
  • 构建 APK - 错误 - app:transformClassesWithDexForDebug

    我在这里看了很多线程 但仍然没有找到有效的解决方案 当我想构建 APK 时 出现以下主要错误 错误 任务执行失败 app transformClassesWithDexForDebug com android build api trans
  • Chartjs 拆分两位数数字

    我已经多次看到这个问题 但我找不到适合我的解决方案 我将 Django 变量传递到 Chartjs 中进行绘图 所有单位数字都是正确的 但它会将两位数变成单位数 就像 11 是 1 1 23 是 2 3 我尝试了很多不同的方法 但无法弄清楚
  • 由于 StackOverflowError,无法完成 Web 应用程序 [/app] 的注释扫描

    我正在使用 STS eclipse 插件 和 maven 开发 Spring MVC 应用程序 为了创建项目 我按照 STS 向导创建了一个新的 Spring MVC 项目 之后 我向其他项目和库添加了一些依赖项 然而 当我现在尝试将项目部
  • -bash:__git_ps1:找不到命令

    我尝试安装 Ruby 2 0 我的命令行出现了问题 现在如下所示 bash git ps1 command not found 11 58 28 whatever whatever 我不知道如何摆脱 git ps1 command not
  • 在 Python 中线程读取串行端口(使用 GUI)

    我想在运行 GUI 时每当有数据要从串行端口读取时触发一个事件 这pySerial模块显然具有实验性功能 但没有特别详细的记录 我找不到任何有用的示例在 API 中 https pyserial readthedocs io en late
  • 仅为公共成员提取 xml 注释

    我使用 xml 注释来记录组件的公共成员以及内部成员和私有成员 我想将生成的文档 xml 文件与组件程序集打包 以便为最终产品启用 丰富 例如 包含方法 异常和参数描述 的 Visual Studio Intellisense 问题在于 C
  • 如何从 php 变量获取数据属性?

    我有一个可以使用 ajax 和 jQuery 从 MySql 数据库中删除记录的表单 我试图让 jQuery 仅选择传递给它的相关记录 而不仅仅是删除它目前所做的顶行记录 我想我需要得到 div class 从我的表单中并将其设为可以选择的
  • 使用多处理时 Python rpy2 和 matplotlib 发生冲突

    我正在尝试使用多重处理来计算和生成绘图 在 Linux 上 下面的代码可以正确运行 但在 Mac ML 上却不能正确运行 并出现以下错误 import multiprocessing import matplotlib pyplot as