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/issue9867 I'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

Reply via email to