Gene Heskett wrote: > On Tuesday 19 November 2013 11:16:10 Peter Otten did opine: > >> Gene Heskett wrote: >> > Old python, 2.6.4 I believe, not update able from the Ubuntu 10.04.3 >> > LTS repo's. >> > >> > Should be a mauchs nichs as the code was written on, and is running >> > on, several of these same linuxcnc installs. >> > >> > But when I switch in, as one of the plugins a new .py version of >> > camview- emc, I get this when I attempt to run linuxcnc -l, where the >> > -l is "use the same config as last time" option. >> > >> > Starting LinuxCNC... >> > >> > Traceback (most recent call last): >> > File "/usr/bin/axis", line 3326, in <module> >> > >> > _dynamic_tabs(inifile) >> > >> > File "/usr/bin/axis", line 3182, in _dynamic_tabs >> > >> > child = Popen(cmd) >> > >> > File "/usr/lib/python2.6/subprocess.py", line 633, in __init__ >> > >> > errread, errwrite) >> > >> > File "/usr/lib/python2.6/subprocess.py", line 1139, in >> > _execute_child >> > >> > raise child_exception >> > >> > OSError: [Errno 2] No such file or directory >> > >> > No clue, even when straced, as to what file might be missing. >> > >> > So, how do I find out? >> >> How about inserting a >> >> print cmd >> >> before the line >> >> child = Popen(cmd) >> >> ? Depending on its value it may not even be a missing command, e. g. >> This doesn't work: >> >> Python 2.6.7 (r267:88850, Sep 28 2012, 16:26:39) >> [GCC 4.6.1] on linux2 >> Type "help", "copyright", "credits" or "license" for more information. >> >> >>> import subprocess >> >>> subprocess.Popen("ls -1") >> >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File "/usr/lib/python2.6/subprocess.py", line 623, in __init__ >> errread, errwrite) >> File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child >> raise child_exception >> OSError: [Errno 2] No such file or directory >> >> But this works: >> >>> subprocess.Popen(["ls", "-1"]) >> >> <subprocess.Popen object at 0x7f8b31c5cfd0> >> >> >>> alpha >> >> beta >> gamma >> >> And this works, too (but is a bit less robust): >> >> subprocess.Popen("ls -1", shell=True) >> <subprocess.Popen object at 0x7f8b31c5cd90> >> >> >>> alpha >> >> beta >> gamma > > You are suggesting I edit /usr/lib/python2.6/subprocess.py?
No, first and foremost I suggested that you find out the actual value of cmd. Only if that's indeed (a) a string and (b) contains a command with options my demo shows two possible fixes that you can apply to the Popen() call in the _dynamic_tabs() function: (1) The clean one: Make sure that cmd is a list with the executable as the first item and the options as the following items (this will require changes in other places), or (2) The quick and dirty one: Leave everything as is and add shell=True to the Popen() call. -- https://mail.python.org/mailman/listinfo/python-list