osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Get __name__ in C extension module


On 2019-10-06 15:48, Ian Pilcher wrote:
> On 10/5/19 12:55 PM, Ian Pilcher wrote:
>> This is straightforward, except that I cannot figure out how to retrieve
>> the __name__.
> 
> Making progress.  I can get a __name__ value with:
> 
>     PyDict_GetItemString(PyEval_GetGlobals(), "__name__")
> 
> I say "a __name__ value" because the returned value is actually that of
> the calling module, not the name of my extension.
> 
> Is this normal?
> 
Don't you already have the module's name? You have to specify it in the 
PyModuleDef struct that you pass to PyModule_Create.
Calling PyModule_Create returns a reference to the module, and you can 
get its namespace dict with PyModule_GetDict(...).