【问题标题】:matplotlib for c++ gives this error: 'PyObject_CallObject': function does not take 3 argumentsc++ 的 matplotlib 给出了这个错误:'PyObject_CallObject': function does not take 3 arguments
【发布时间】:2020-02-29 16:41:51
【问题描述】:

我有 microsoft visual studio 2019 并使用 nuget 为其安装了 matplotlib,但是当我想构建此代码时:

#include "matplotlibcpp.h"
namespace plt = matplotlibcpp;
int main() {
    plt::plot({ 1,3,2,4 });
    plt::show();
}

它给出了这个错误:'PyObject_CallObject': function does not take 3 arguments

这是构建输出:

1>------ Build started: Project: ConsoleApplication3, Configuration: Debug Win32 ------
1>ConsoleApplication3.cpp
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.1.1.0.92\include\matplotlibcpp\imshow.h(58,21): error C2660: 'PyObject_CallObject': function does not take 3 arguments
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.1.1.0.92\sandbox\include\abstract.h(363,29): message : see declaration of 'PyObject_CallObject'
1>C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.1.1.0.92\include\matplotlibcpp\imshow.h(58,40): message : 'PyObject_CallObject': function declaration must be available as none of the arguments depend on a template parameter
1>Done building project "ConsoleApplication3.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

以及完整的错误:


Severity    Code    Description Project File    Line    Suppression State   Suppression State
Error   C2660   'PyObject_CallObject': function does not take 3 arguments   ConsoleApplication3 C:\Users\matthijs\source\repos\ConsoleApplication3\packages\matplotlib-cpp.1.1.0.92\include\matplotlibcpp\imshow.h  58      

如何解决这个问题? 我使用nuget安装了matplotlib的最新版本

错误发生在这里: PyObject* res = PyObject_CallObject(detail::_interpreter::get().s_python_function_imshow, plot_args, kwargs); 我有一台 Windows 10 笔记本电脑,我使用 python 3.7

【问题讨论】:

    标签: python c++ visual-studio matplotlib nuget


    【解决方案1】:

    正如错误所说,“PyObject_CallObject”不需要 3 个参数。 查看 some docs I found on a quick google ,看起来您的 args (plot_args, kwargs) 需要在一个元组中 - 它们都需要在 PyObject_CallObject 的一个 arg 内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 2018-08-01
      • 2022-08-03
      • 2019-10-31
      • 2015-05-04
      相关资源
      最近更新 更多