Finally, I made an ugly workaround, I hope later I will be able to get rid
of it. Until then if someone interested:
In OCCViewer.py in the set_CSF_GraphicShr:

if sys.platform == 'darwin':

        # MacOSX : run the otool -L tool to check to which libTkOpenGl
library it's linked

        # otool -L /Library/Python/2.6/site-packages/OCC/_V3d.so | grep -i

        #p1 =
subprocess.Popen(['otool','-L',v3d_module_library],stdout=subprocess.PIPE,shell=True)

        #p2 =
subprocess.Popen(['grep','-i','libTkOpenGl'],stdin=p1.stdout,stdout=subprocess.PIPE,shell
= True)

        f = tempfile.NamedTemporaryFile();

        os.system('otool -L '+v3d_module_library+' | grep -i libTkOpenGl>'+
f.name)

        output = f.file.readline()



On Tue, Jun 21, 2011 at 4:45 PM, Thomas Paviot <tpav...@gmail.com> wrote:

> I just mean: take only the modeling/data exchange parts of pythonOCC,
> serialize meshes and then render them with a powerful c++ rendering library
> (for instance vtk or coin3d).
>
> If ever it's not possible, and you absolutely need the GUI to be launched
> from the python script, you can perhaps create a python script from your C++
> app and laucnh it from a C++ pipe rather than embedding python into C++.
>
> Thomas
>
>
> 2011/6/21 Csanády István <istvancsan...@gmail.com>
>
>> I am trying to integrate the pyocc with a native C++ application. What do
>> you mean by "getting out the visualization part out of the subprocesses"?
>> Hardcoding the library path? If I won't be able to manage this problem, I
>> will do that.
>>
>> On Tue, Jun 21, 2011 at 4:01 PM, Thomas Paviot <tpav...@gmail.com> wrote:
>>
>>> Hi Istvan,
>>>
>>> Don't know what you're trying to do, but it looks like something
>>> complicated. Get the visualization part out of the subprocesses and  I guess
>>> it will be better.
>>>
>>> THomas
>>>
>>>
>>> 2011/6/21 Csanády István <istvancsan...@gmail.com>
>>>
>>>> The problem is caused by this bug: http://bugs.python.org/issue9867I've 
>>>> been trying to make a workaround, but unfortunately there are many
>>>> other process calls in the Xlib library, which are suffering from the same
>>>> issue.... Though I don't understand why aren't these exceptions raised when
>>>> I run a simple python code. Here is an example:
>>>>
>>>> #include <Python/Python.h>
>>>>
>>>> //#include <string>
>>>>
>>>>
>>>> int main (int argc, const char * argv[])
>>>>
>>>> {
>>>>
>>>>
>>>>     Py_Initialize();
>>>>
>>>>     PyRun_SimpleString("import sys;from OCC import V3d;import
>>>> subprocess;import time;)");
>>>>
>>>>     printf("%s\n",Py_GetPath());
>>>>
>>>>
>>>>     
>>>> //PyRun_AnyFile(fopen("/Users/istvancsanady/Documents/workspace/butterfly/__main__.py",
>>>> "r"), NULL);
>>>>
>>>>     PyRun_SimpleString("v3d_module_library =
>>>> sys.modules['OCC._V3d'].__file__;p1 =
>>>> subprocess.Popen(['otool','-L','%s'%v3d_module_library],stdout=subprocess.PIPE);time.sleep(1);p2
>>>> =
>>>> subprocess.Popen(['grep','-i','libTkOpenGl'],stdin=p1.stdout,stdout=subprocess.PIPE);time.sleep(1);output
>>>> = p2.communicate()[0]");
>>>>
>>>>     pause();
>>>>
>>>>     return 0;
>>>>
>>>> }
>>>>
>>>>
>>>> And the exception:
>>>>
>>>>
>>>> *Traceback (most recent call last):*
>>>>
>>>> *  File "<string>", line 1, in <module>*
>>>>
>>>> *  File
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
>>>> line 595, in __init__*
>>>>
>>>> *    errread, errwrite)*
>>>>
>>>> *  File
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
>>>> line 1101, in _execute_child*
>>>>
>>>> *    data = os.read(errpipe_read, 1048576) # Exceptions limited to 1 MB
>>>> *
>>>>
>>>> *OSError: [Errno 4] Interrupted system call*
>>>>
>>>> *
>>>> *
>>>>
>>>> *Fortunately I can hardcode the linked libraries if I want to
>>>> distribute an app with pyocc, however this bug is a pain in my ass, because
>>>> I can't eliminate all process calls in the Xlib... *
>>>>
>>>> *Python version: 2.6*
>>>>
>>>> *Mac OS X 10.6.7*
>>>>
>>>> *
>>>> *
>>>>
>>>> *István*
>>>>
>>>> *
>>>> *
>>>>
>>>> On Mon, Jun 20, 2011 at 5:42 PM, Thomas Paviot <tpav...@gmail.com>
>>>> wrote:
>>>> > 2011/6/20 Csanády István <istvancsan...@gmail.com>
>>>> >>
>>>> >> Hi All!
>>>> >> I am trying to use pyocc from C++, with the embedded python api. If I
>>>> >> run the app from XCode, I got the following errors when initializing
>>>> >> SimpleGUI:
>>>> >> Traceback (most recent call last):
>>>> >>   File "???", line 7, in <module>
>>>> >>   File
>>>> "/Users/istvancsanady/Documents/workspace/butterfly/src/pool.py",
>>>> >> line 12, in <module>
>>>> >>     display, start_display, add_menu, add_function_to_menu =
>>>> >> init_display()
>>>> >>   File "/Library/Python/2.6/site-packages/OCC/Display/SimpleGui.py",
>>>> >> line 173, in init_display
>>>> >>     from XDisplay import XOCCWindow
>>>> >>   File "/Library/Python/2.6/site-packages/OCC/Display/XDisplay.py",
>>>> >> line 28, in <module>
>>>> >>     import OCCViewer
>>>> >>   File "/Library/Python/2.6/site-packages/OCC/Display/OCCViewer.py",
>>>> >> line 77, in <module>
>>>> >>     set_CSF_GraphicShr()
>>>> >>   File "/Library/Python/2.6/site-packages/OCC/Display/OCCViewer.py",
>>>> >> line 62, in set_CSF_GraphicShr
>>>> >>     p2 =
>>>> >>
>>>> subprocess.Popen(['grep','-i','libTkOpenGl'],stdin=p1.stdout,stdout=subprocess.PIPE)
>>>> >>   File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
>>>> >> line 595, in __init__
>>>> >>     errread, errwrite)
>>>> >>   File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py",
>>>> >> line 1101, in _execute_child
>>>> >>     data = os.read(errpipe_read, 1048576) # Exceptions limited to 1
>>>> MB
>>>> >> OSError: [Errno 4] Interrupted system call
>>>> >> Or the other one:
>>>> >> Traceback (most recent call last):
>>>> >>   File "???", line 7, in <module>
>>>> >>   File
>>>> "/Users/istvancsanady/Documents/workspace/butterfly/src/pool.py",
>>>> >> line 12, in <module>
>>>> >>     display, start_display, add_menu, add_function_to_menu =
>>>> >> init_display()
>>>> >>   File "/Library/Python/2.6/site-packages/OCC/Display/SimpleGui.py",
>>>> >> line 174, in init_display
>>>> >>     win = XOCCWindow(display_xlib.Display(),"pythonOCC-%s 3d viewer
>>>> >> ('python-xlib' backend)"%VERSION)
>>>> >>   File "/Library/Python/2.6/site-packages/Xlib/display.py", line 83,
>>>> in
>>>> >> __init__
>>>> >>     self.display = _BaseDisplay(display)
>>>> >>   File "/Library/Python/2.6/site-packages/Xlib/display.py", line 65,
>>>> in
>>>> >> __init__
>>>> >>     apply(protocol.display.Display.__init__, (self, ) + args, keys)
>>>> >>   File "/Library/Python/2.6/site-packages/Xlib/protocol/display.py",
>>>> >> line 44, in __init__
>>>> >>     name, host, displayno, screenno = connect.get_display(display)
>>>> >>   File "/Library/Python/2.6/site-packages/Xlib/support/connect.py",
>>>> >> line 64, in get_display
>>>> >>     mod = __import__(modname, globals())
>>>> >>   File
>>>> "/Library/Python/2.6/site-packages/Xlib/support/unix_connect.py",
>>>> >> line 43, in <module>
>>>> >>     uname = platform.uname()
>>>> >>   File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/platform.py",
>>>> >> line 1194, in uname
>>>> >>     processor = _syscmd_uname('-p','')
>>>> >>   File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/platform.py",
>>>> >> line 950, in _syscmd_uname
>>>> >>     output = string.strip(f.read())
>>>> >> IOError: [Errno 4] Interrupted system call
>>>> >>
>>>> >> And another one:
>>>> >>
>>>> >> Traceback (most recent call last):
>>>> >>  File "???", line 7, in <module>
>>>> >>  File
>>>> "/Users/istvancsanady/Documents/workspace/butterfly/src/pool.py",
>>>> >> line 12, in <module>
>>>> >>    display, start_display, add_menu, add_function_to_menu =
>>>> init_display()
>>>> >>  File "/Library/Python/2.6/site-packages/OCC/Display/SimpleGui.py",
>>>> >> line 174, in init_display
>>>> >>    win = XOCCWindow(display_xlib.Display(),"pythonOCC-%s 3d viewer
>>>> >> ('python-xlib' backend)"%VERSION)
>>>> >>  File "/Library/Python/2.6/site-packages/Xlib/display.py", line 83,
>>>> in
>>>> >> __init__
>>>> >>    self.display = _BaseDisplay(display)
>>>> >>  File "/Library/Python/2.6/site-packages/Xlib/display.py", line 65,
>>>> in
>>>> >> __init__
>>>> >>    apply(protocol.display.Display.__init__, (self, ) + args, keys)
>>>> >>  File "/Library/Python/2.6/site-packages/Xlib/protocol/display.py",
>>>> >> line 44, in __init__
>>>> >>    name, host, displayno, screenno = connect.get_display(display)
>>>> >>  File "/Library/Python/2.6/site-packages/Xlib/support/connect.py",
>>>> >> line 64, in get_display
>>>> >>    mod = __import__(modname, globals())
>>>> >>  File
>>>> "/Library/Python/2.6/site-packages/Xlib/support/unix_connect.py",
>>>> >> line 43, in <module>
>>>> >>    uname = platform.uname()
>>>> >>  File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/platform.py",
>>>> >> line 1194, in uname
>>>> >>    processor = _syscmd_uname('-p','')
>>>> >>  File
>>>> >>
>>>> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/platform.py",
>>>> >> line 950, in _syscmd_uname
>>>> >>    output = string.strip(f.read())
>>>> >> IOError: [Errno 4] Interrupted system call
>>>> >>
>>>> >>
>>>> >>
>>>> >> And the strangest thing: sometimes IT WORKS! If I start the app from
>>>> >> Terminal or Finder, everything works always fine... Any ideas?
>>>> >>
>>>> >> István
>>>> >
>>>> > Hi,
>>>> >
>>>> > Reading the trace, I have the feeling you're trying to use
>>>> multithreading or
>>>> > multiprocessing. It's a bad idea to call a GUI from a specific thread
>>>> (the
>>>> > GUI mainloop generally conflicts with the subthread).
>>>> >
>>>> > I can't help you further without any information about the code you're
>>>> > running.
>>>> >
>>>> > Thomas
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > 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
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>
> _______________________________________________
> 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

Reply via email to