[IPython-user] os.startfile -> infinite loop

Ryan Krauss ryanfedora at comcast.net
Wed Aug 31 13:02:13 CDT 2005


Fernando asked me to do the following:

Are you using ipython's %run command to run it?  Because %run is just a 
fancy
wrapper around execfile().  Try from within ipython both using

run noncolocated

and also

execfile('noncolocated.py')

Also try the latter from a plain python prompt.  Let me know what 
happens, and
we might have some ideas.



Both run and execfile from within Ipython start the inifinte loop.

execfile from a regular python prompt does not.  It exists normally.

Ryan
Ryan Krauss wrote:
> I know this seems like a YAP problem because I don't have the problem 
> with PDF files (and it may well be that it is something I have done to 
> YAP), but I don't have the problem if I run the script from python 
> directly rather than Ipython (but then it takes forever to re-run the 
> script because it is re-importing each time).
> 
> Ryan
> 
> Ryan Krauss wrote:
> 
>> I have an interesting problem with os.startfile and Ipython.  I have a 
>> script that generates a LaTeX file and runs LaTeX.  I then open the 
>> output with os.startfile.  On my computer at home, I have no 
>> problems.  On the computer in my office, I have no problems if I run 
>> pdflatex and open a pdf file (with Acrobat).  However, if I generate a 
>> dvi file and open it with YAP, it starts an infinite loop.  I know 
>> this sounds crazy.  I will attach the python script.
>>
>> If I comment out this line
>> os.startfile(ostr)  (line 77)
>> the code exits normally.
>>
>> If I leave this line in and I am opening a dvi file, the script goes 
>> all the way back to the begining and re-executes continually.
>>
>> Any thoughts?
>>
>> Ryan
>>
>>
>> ------------------------------------------------------------------------
>>
>> import time
>> ta1=time.time()
>> import rwkascii
>> reload(rwkascii)
>> ta2=time.time()
>> print('import ascii time='+str(ta2-ta1))
>> import os
>> import pdb
>> from rwkos import FindFullPath
>>
>> ts=time.time()
>> maximapath='maxima'
>> latexcmd='latex'
>> viewerext='.dvi'
>> #latexcmd='pdflatex'
>> #viewerext='.pdf'
>> #pdb.set_trace()
>> mydir=FindFullPath('GT\\Research\\Samii\\modeling\\Feedback')
>> inname='noncolocated.tex'
>> fno,ext=os.path.splitext(inname)
>> outname=fno+'_out'+ext
>> mylist=rwkascii.rwklatexlist([],outname)
>> mylist.readfile(inname)
>>
>> #pdb.set_trace()
>> b4lines,maximalines, endlines=mylist.findenvironments('maxima',0)
>> maxpath=os.path.join(mydir,fno+'.max')
>> eqdir=os.path.join(mydir,'noncolocated_eqs')
>> if not os.path.exists(eqdir):
>>     os.mkdir(eqdir)
>> #pdb.set_trace()
>> outlines=rwkascii.BuildMaximaScript(maximalines, maxpath, eqdir, 'maxeq')
>>
>> maxpath_fs=maxpath.replace('\\','/')
>> maximastr=maximapath+' -b '+maxpath_fs
>> #os.system(maximastr)
>> r,w=os.popen2(maximastr)
>> #maxe=e.readlines()
>> #e.close()
>> maxo=w.readlines()
>> w.close()
>> #r.close()
>> if rwkascii.searchlist(maxo,'Incorrect syntax'):
>>     for line in maxo:
>>         print(line.strip())
>> #pdb.set_trace()
>> findlist=['Fa','xa']
>> replist=['F_a','x_a']
>> #pdb.set_trace()
>> tr1=time.time()
>> outbiglist=rwkascii.ReadMaximaOutput(outlines,findlist,replist)
>> tr2=time.time()
>> print('ReadMaxima time='+str(tr2-tr1))
>> newlist=rwkascii.rwklatexlist([],outname)
>> newlist.list=mylist.reassemble(b4lines,outbiglist,endlines)
>> #newlist.wrapeq()
>> newlist.addheader()
>> newlist.tofile()
>>
>> #latexstr1=latexcmd+' -interaction=batchmode '+outname
>> latexstr2=latexcmd+' -interaction=nonstopmode '+outname
>> r,w=os.popen2(latexstr2)
>> texout=w.readlines()
>> w.close()
>> r.close()
>> if rwkascii.searchlist(texout,'LaTeX Error'):
>>     for line in texout:
>>         print(line.strip())
>> if rwkascii.searchlist(texout,'Label(s) may have changed'):
>>     print('Running LaTeX a second time.')
>>     r,w=os.popen2(latexstr2)
>>     texout=w.readlines()
>>     w.close()
>>     r.close()
>> outfno,ext=os.path.splitext(outname)
>> ostr=outfno+viewerext
>> os.startfile(ostr)
>> te=time.time()
>> print('run time='+str(te-ts))
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> IPython-user mailing list
>> IPython-user at scipy.net
>> http://scipy.net/mailman/listinfo/ipython-user
> 
> 




More information about the IPython-user mailing list