[C++-sig] Boost Python Question - Multiple Classes and Modules not appearing as attribute

Stefan Seefeld stefan at seefeld.name
Fri Sep 9 10:12:50 EDT 2016


On 09.09.2016 10:00, Jon Lederman wrote:
> Hi,
>
> Let me be more explicit:
>
> If my BOOST thing is:  BOOST_PYTHON_MODULE(opus_encoder_strategy) and my Makefile is like this:
>
> all: opus_encoder_strategy.so
>
> opus_encoder_strategy.so: opus_encoder_strategy.o
> 	${CC} ${CInc} ${CLinkFlags} $^ -o $@
>
>
> opus_encoder_strategy.o:  opus_encoder_strategy.cpp
> 	${CC} ${CFLAGS} ${CInc} opus_encoder_strategy.cpp -o opus_encoder_strategy.o
>
> and I build the name of the .so file to be opus_encoder_strategy.so, then I am able to access the embedded class.  
>
> HOWEVER, if I change the BOOST thing to BOOST_PYTHON_MODULE(opus_strategy) and my make file to this:
>
> all: opus_strategy.so #lv2strategy.so
>
>
> opus_strategy.so: opus_strategy.o
> 	${CC} ${CInc} ${CLinkFlags} $^ -o $@
>
>
> opus_strategy.o:  opus_encoder_strategy.cpp
> 	${CC} ${CFLAGS} ${CInc} opus_encoder_strategy.cpp -o opus_strategy.o
>
> it doesn’t work.  
>
> NOTE that I am matching the BOOST thing to the name of the .so file, this case opus_strategy.so
>
> It seems that it is looking at something else like the actual name of the cpp file or cpp file?  This makes no sense to me and there is no documentation on how to properly use this.
> I am using python 3.  Is this an issue.  The documentation needs substantial improvement and clarification.

The name of the original source file is indeed irrelevant. The symptom
you describe seems to suggest that the Python interpreter is getting
confused. Are you sure the it sees the correct module at all ? (Does the
`__file__` attribute look correct ?) Perhaps you have also a
'opus_strategy.py' file in your path so your extension module isn't
loaded at all after the renaming ?
(Note that the exercise of putting together a minimal self-contained
test case, which I've been trying to suggest (still in vain, it seems),
would allow you to eliminate any such issues. All it requires is a bit
of debugging discipline...)

        Stefan

-- 

      ...ich hab' noch einen Koffer in Berlin...



More information about the Cplusplus-sig mailing list