Closed
Description
Hello,
Thank you for making public this repository
I have an issue with the following example "02-ExposingClasses". After a successful compilation when I executing the classes.py I have the following error:
Traceback (most recent call last):
File "classes.py", line 5, in <module>
t = classes.World()
TypeError: __init__() should return None, not 'NoneType'
I am using:
- osx 10.13
- python 3.6 anaconda
- boost 1.65.1
in the build.sh I configured the following variables
- PYTHON_VERSION="3.6m"
- PYTHON_LIBRARY=/usr/local/anaconda/lib/libpython$PYTHON_VERSION.dylib
- PYTHON_INCLUDE_DIR=/usr/local/anaconda/include/python$PYTHON_VERSION
- BOOST_ROOT=/usr/local/anaconda
I checked that the classes.so was linked correctly
> otool -L classes.so
classes.so:
@rpath/libboost_python3.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libpython3.6m.dylib (compatibility version 3.6.0, current version 3.6.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)Thank
Best regards,
Vincent
Metadata
Metadata
Assignees
Labels
No labels
Activity
[-]02-ExposingClasses[/-][+]Execution error in 02-ExposingClasses example[/+]Achimh3011 commentedon Oct 21, 2017
I can reproduce the problem with boost-python installed by homebrew.
Achimh3011 commentedon Oct 22, 2017
Can you run
otool -Lon yourlibboost_python3.dylib? Most of the internet thinks that a library version mismatch is responsible for this kind of error.Achimh3011 commentedon Jun 14, 2018
I came across this problem again and this time I could solve it: make sure that you use exactly matching python interpreter, python library and boost library.
It's not easy to get that working on OSX, but that's the key. I'll try to improve
build.sh, but feel free to set the necessary variabled yourself.