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