Matplotlib для C ++ выдает эту ошибку: 'PyObject_CallObject': функция не принимает 3 аргумента - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть Microsoft Visual Studio 2019 и установлен Matplotlib для него с помощью Nuget, но когда я хочу построить этот код:

#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

1 Ответ

1 голос
/ 04 ноября 2019

Как говорится в ошибке, «PyObject_CallObject» не принимает 3 аргумента. Глядя на некоторые документы, которые я нашел в быстром google , похоже, что ваши аргументы (plot_args, kwargs) должны быть в кортеже - все они должны быть в пределах одного аргумента PyObject_CallObject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...