Arthur Magill a écrit : > Hi Ben, > Hi Arthur, > I've got about as far as you have, so I'm no expert here ;-) > I agree with you: python OCC compilation still requires a few compilation/build skills. I currently work on a scons based build process that will be fairly more portable, simple and reliable. It's almost done but still experimental and need testing. To test it:
$ cd pythonocc $ svn update $ cd src $ scons > I think the utils directory is missing from the .tar.gz - try using the > svn checkout instead. > > I also notice in your error listing that CAS_ROOT isn't set. OpenCascade > usually sets CASROOT (no underscore), so maybe you need to chase that as > well. > The CASROOT is used in pythonOCC only to find OCC paths under Windows. Under Windows, OpenCascade installation is quite simple: includes are in CASROOT/inc and libraries in CASROOT/lib. Under Linux, it depends on your distribution, and OpenCascade files maybe anywhere (/opt, /usr/local/inc, /usr/inc et.). That's why it's so difficult to automate the compilation process and why it's necessary to hack the environment.py script. > Good luck! > > Arthur > Best Regards, Thomas > > ben lipkowitz wrote: > >> Congratulations on your first release. I've been waiting hopefully for a >> set of python bindings to opencascade since I learned about pythonizer >> about three years ago. Anyway, down to the dirty details. Help is much >> appreciated as I have no idea how SWIG works. This is what I did: >> >> echo 'deb http://www.opennovation.org/debian lenny main contrib non-free' | >> sudo tee -a /etc/apt/sources.list >> sudo apt-get update >> sudo apt-get install libopencascade-visualization-dev libopencascade-ocaf-dev >> export CASROOT=/usr/share/opencascade/6.3.0/ #is this actually used? >> wget http://www.pythonocc.org/Releases/pythonOCC-md0.1.tar.gz >> wget http://www.pythonocc.org/Releases/pythonOCC-md0.1-demos.zip >> tar -zxvf pythonOCC*.tar.gz >> cd pythonOCC*/src/ >> #edit environment.py so OCC_LIB is /usr/lib/opencascade and OCC_INC is >> /usr/include/opencascade >> >> python setup.py build 2>&1 | tee build.log >> >> ---- >> and this is what I get: >> >> Building pythonOCC >> OopenCascade CAS_ROOT environment variable not set. >> Creating __init__.py script. >> __init__.py script created. >> running build >> running build_py >> copying OCC/__init__.py -> build/lib.linux-i686-2.5/OCC >> copying OCC/Standard.py -> build/lib.linux-i686-2.5/OCC >> package init file >> '/home/fenn/code/pythonOCC-md0.1/src/../Utils/__init__.py' not found (or >> not a regular file) >> package init file >> '/home/fenn/code/pythonOCC-md0.1/src/../Utils/__init__.py' not found (or >> not a regular file) >> running build_ext >> building 'OCC._Standard' extension >> swigging >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard.i >> to >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp >> swig -python -modern -fcompact -c++ -DHAVE_LIMITS_H -DHAVE_CONFIG_H >> -DCSFDB -DOCC_CONVERT_SIGNALS -DLIN -DLININTEL -D_GNU_SOURCE=1 -outdir >> /home/fenn/code/pythonOCC-md0.1/src/OCC -o >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp >> >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard.i >> g++ -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes >> -fPIC -DHAVE_CONFIG_H -DHAVE_LIMITS_H -DCSFDB -DOCC_CONVERT_SIGNALS -DLIN >> -DLININTEL -D_GNU_SOURCE=1 -I/usr/include/opencascade/ >> -I/usr/include/python2.5 -c >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp >> >> -o >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o >> >> -O0 >> cc1plus: warning: command line option "-Wstrict-prototypes" is valid for >> Ada/C/ObjC but not for C++ >> cc1plus: warning: command line option "-Wstrict-prototypes" is valid for >> Ada/C/ObjC but not for C++ >> g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o >> >> -L/usr/lib/opencascade/ -o build/lib.linux-i686-2.5/OCC/_Standard.so >> -Wl,--no-undefined >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_Python_ErrorType': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:832: >> >> undefined reference to `PyExc_MemoryError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:835: >> >> undefined reference to `PyExc_IOError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:838: >> >> undefined reference to `PyExc_RuntimeError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:841: >> >> undefined reference to `PyExc_IndexError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:844: >> >> undefined reference to `PyExc_TypeError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:847: >> >> undefined reference to `PyExc_ZeroDivisionError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:850: >> >> undefined reference to `PyExc_OverflowError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:853: >> >> undefined reference to `PyExc_SyntaxError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:856: >> >> undefined reference to `PyExc_ValueError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:859: >> >> undefined reference to `PyExc_SystemError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:862: >> >> undefined reference to `PyExc_AttributeError' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:865: >> >> undefined reference to `PyExc_RuntimeError' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_Py_Void': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:1232: >> >> undefined reference to `_Py_NoneStruct' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `_PySwigObject_type': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:1703: >> >> undefined reference to `PyType_Type' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `_PySwigPacked_type': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:1864: >> >> undefined reference to `PyObject_GenericGetAttr' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:1866: >> >> undefined reference to `PyType_Type' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `swig_varlink_type': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:13241: >> >> undefined reference to `PyType_Type' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_From_int': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:2890: >> >> undefined reference to `PyInt_FromLong' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_From_short': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:3380: >> >> undefined reference to `PyInt_FromLong' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_Python_SetConstant': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:1075: >> >> undefined reference to `PyDict_SetItemString' >> build/temp.linux-i686-2.5/home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.o: >> >> In function `SWIG_Python_newvarlink': >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:13250: >> >> undefined reference to `PyObject_Malloc' >> /home/fenn/code/pythonOCC-md0.1/src/SWIG_src_modular_linux_darwin/Standard_wrap.cpp:13250: >> >> undefined reference to `PyObject_Init' >> >> >> and so on for thousands of pages >> >> _______________________________________________ >> Pythonocc-users mailing list >> Pythonocc-users@gna.org >> https://mail.gna.org/listinfo/pythonocc-users >> > > > _______________________________________________ Pythonocc-users mailing list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users