笔者是在初次学习使用VS里面的C++调用python中遇到的这个问题,本意是复现一次成功的调用,但中间遇到了如题所示的错误
笔者复现参考网址:https://www.cnblogs.com/betterwgo/p/8176525.html
笔者搜素了相关的资料,发现这个问题就是版本问题,这个”PyEval_CallObjectWithKeywords“API在python3.9版本里已经被淘汰了。那么如何去解决呢?笔者想着找到能替代它的对应API不就行了,然后经过查找,发现:
将已经弃用的PyEval_CallObject()调用替换为PyObject_CallObject(). #9737
就可以了。但是新的问题也来了:
C2857 在源文件中没有找到用 /Ycstdafx.h 命令行选项指定的“#include”语句 。
解决方案:在cpp文件第一行加上 #include "stdafx.h"
但是#include "stdafx.h"是我之前删掉的东西,之前报错我把它删掉了又加了一个”#include
好吧,问题重现了,
看到有人说把#include "stdafx.h"替换成#include
其中如果出现无法找到某.obj的错误,在附加依赖项里面加'*'通配符就好了,亲测有效,如下图所示。
后来调试没有错误,但运行出现以下错误:
这个很多博客进行回答了,包括io.h重命名的错误,还有abc.py文件的重命名问题,但是没有一种是符合我的情况,我很疑惑,不知道如何解决?各位大佬教教我吧



