叫我学弟 2020-10-24 20:43 采纳率: 0%
浏览 105

自己用C++写的Python模块无法被导入是为什么呢

小白一枚,尝试用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模块呢。求大神指点~~

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 17:43
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?