Skip to content

[BUG]: AttributeError: module has no attribute #4554

@NuLL3rr0r

Description

@NuLL3rr0r

Required prerequisites

What version (or hash if on master) of pybind11 are you using?

2.10.3

Problem description

OK, I am trying to export the following simple Add function (I took the example from the online tutorial on the pybind11 website) without any success:

#include <cstdint>
#include <pybind11/pybind11.h>

int32_t Add(int32_t a, int32_t b) {
    return a + b;
}

PYBIND11_MODULE(SGPYCPP_MODULE_NAME, m) {
    m.doc() = "A simple Python/C++ example";

    m.def("Add", &Add, "A function that adds two numbers");
}

When I import it, it imports my module, but says it has no attribute named Add:

python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import SGPyCpp
>>> SGPyCpp.Add(2,1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'SGPyCpp' has no attribute 'Add'
>>> 

I even tried to name my module example and use the exact sample from the official online tutorial to leave out any other possibility without any luck:

int add(int i, int j) {
    return i + j;
}

PYBIND11_MODULE(example, m) {
    m.doc() = "pybind11 example plugin"; // optional module docstring

    m.def("add", &add, "A function that adds two numbers");
}

I even tried to comment on most of CMakeLists.txt and reduced it to the sample from here without any luck.

I'll attach the full source code as a zip file in order to replicate the issue. After extraction, just issue:

make clean && make

SGPyCpp.zip

I'd appreciate it if you'd let me know what's wrong.

Reproducible example code

A full example is provided in the zip file:


#include <cstdint>
#include <pybind11/pybind11.h>

int32_t Add(int32_t a, int32_t b) {
    return a + b;
}

PYBIND11_MODULE(SGPYCPP_MODULE_NAME, m) {
    m.doc() = "A simple Python/C++ example";

    m.def("Add", &Add, "A function that adds two numbers");
}


### Is this a regression? Put the last known working version here if it is.

Not a regression

Metadata

Metadata

Assignees

No one assigned

    Labels

    triageNew bug, unverified

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions