小白一枚,尝试用C++写Python的模块。
代码是这样的:
#include "pch.h"
#include <boost/python.hpp>
#define BOOST_PYTHON_STATIC_LIB
#include <iostream>
using namespace std;
using namespace boost::python;
class Student
{
private:
string name;
int age;
public:
Student(string &name, int age)
{
this->name = name;
this->age = age;
}
Student()
{
this->name = "默认姓名";
this->age = 20;
}
void eat(string &something)
{
cout << this->name << "正在吃" << something << endl;
}
void sleep()
{
cout << this->name << "正在睡觉" << endl;
}
string getName()
{
return this->name;
}
int getAge()
{
return this->age;
}
};
BOOST_PYTHON_MODULE(MyStudent)
{
class_<Student>("Student", init<string&, int>())
.def("eat", &Student::eat)
.def("sleep", &Student::sleep)
.def("getName", &Student::getName)
.def("getAge", &Student::getAge);
}
编译通过生成dll,改扩展名为pyd后放到了python安装目录内的DLLs文件夹,但是,python中无法找到这个模块,把pyd放到项目文件夹内也无法搜索到。
环境:VS2019,windows10,python3.7.7,boost 1.74.0
搜索路径都在sys.path中,为什么搜索不到这个MyStudent模块呢。求大神指点~~