FAQ
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?


Thanks.


Cheers, Gene
--
"There are four boxes to be used in defense of liberty:
  soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)


<james> abuse me. I'm so lame I sent a bug report to debian-devel-changes
   -- Seen on #Debian
A pen in the hand of this president is far more
dangerous than 200 million guns in the hands of
          law-abiding citizens.

Search Discussions

  • Albert Dengg at Nov 19, 2013 at 9:49 am
    On Tue, Nov 19, 2013 at 04:31:15AM -0500, Gene Heskett wrote:
    ...
    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?
    have you tried strace -e open -ff -ofile.log ?
    (it is easy to miss something in the strace output & and with -ff you
    also get subprocesses (in their own files, file.log.pid1,
    file.log.pid2,...)


    this however, does not really look like a python problem, as from the
    look of it it misses some external executable it tries to Popen()


    so, you should probably on some linuxcnc/camview-emc related mailling
    list/forum.


    regards,
    albert


    ps: a more descriptive subject line would be helpfull for people to
    recognize what your post is about and then can quickly decide if they
    want to look at it or not.
    -------------- next part --------------
    A non-text attachment was scrubbed...
    Name: signature.asc
    Type: application/pgp-signature
    Size: 836 bytes
    Desc: Digital signature
    URL: <http://mail.python.org/pipermail/python-list/attachments/20131119/4e996b3c/attachment-0001.sig>
  • Gene Heskett at Nov 19, 2013 at 2:02 pm

    On Tuesday 19 November 2013 08:51:09 Albert Dengg did opine:


    On Tue, Nov 19, 2013 at 04:31:15AM -0500, Gene Heskett wrote:
    ...
    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?
    have you tried strace -e open -ff -ofile.log ?
    (it is easy to miss something in the strace output & and with -ff you
    also get subprocesses (in their own files, file.log.pid1,
    file.log.pid2,...)
    The man page for strace, doesn't point that out, at least clear enough to
    get my attention.


    Thank you very much. I will do that, done. Got another error on the
    terminal, something about the module helper not being setuid root.


    module_helper is not setuid root
    Realtime system did not load


    This is associated with the expanded control strace now has, it is not
    present otherwise.


    And about 150 file.log.pid's. :) That should take a while to read.

    this however, does not really look like a python problem, as from the
    look of it it misses some external executable it tries to Popen()

    Hopefully I will find a clue. Thanks again.

    so, you should probably on some linuxcnc/camview-emc related mailling
    list/forum.

    regards,
    albert

    ps: a more descriptive subject line would be helpfull for people to
    recognize what your post is about and then can quickly decide if they
    want to look at it or not.



    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    How should I know if it works? That's what beta testers are for. I
    only coded it.
       -- Attributed to Linus Torvalds, somewhere in a posting
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Gene Heskett at Nov 19, 2013 at 3:54 pm

    On Tuesday 19 November 2013 10:10:31 Gene Heskett did opine:


    On Tuesday 19 November 2013 08:51:09 Albert Dengg did opine:
    On Tue, Nov 19, 2013 at 04:31:15AM -0500, Gene Heskett wrote:
    ...
    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?
    have you tried strace -e open -ff -ofile.log ?
    (it is easy to miss something in the strace output & and with -ff you
    also get subprocesses (in their own files, file.log.pid1,
    file.log.pid2,...)
    The man page for strace, doesn't point that out, at least clear enough
    to get my attention.

    Thank you very much. I will do that, done. Got another error on the
    terminal, something about the module helper not being setuid root.

    module_helper is not setuid root
    Realtime system did not load

    This is associated with the expanded control strace now has, it is not
    present otherwise.

    And about 150 file.log.pid's. :) That should take a while to read.

    I went thru all of those with seeing anything but strace throwing away a
    suid on a module owned by root that does a setuid $user, then complaining
    about it. So I wiped that, then added sudo in front. That never exited
    but went through all the motions, so I rebooted and did a cat file.log.*|
    less, again without finding a smoking gun. The call to the starter script,
    a .py, never made it into these logs according to grep. There was lots of
    screeching because the sudo (root) environment was so different seems to be
    the take away. It also chowned some stuff in my home dir.


    So while I've learned another way not to make a light bulb, its still dark
    here. AFAIK there is no camview-emc list, only the linuxcnc list, and this
    is a case of maybe 3 people including me doing this, all of them far more
    fluent in the various languages involved than I am. But lots will be using
    this once we get it to the It Just Works(TM) stage.


    What I want to do is cut steel, or in this case, pcb's that doesn't involve
    a lot of pallet making, contact installation in the pallet, a half dozen
    tool changes that require machine recalibration subroutines to be run, and
    math to get a hole drilled halfway thru the board from one side, to exactly
    register and meet that same hole when its turned over and drilled from the
    other side.
    >
    The url I am working from:
    <http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Adding_Digital_Zoom_To_Camview-
    Emc>


    If I switch the invocation to use an older version of camunits-emc, I am
    now seeing an error in the terminal I have not seen before.


    ** (camview-emc:1653): WARNING **: /usr/local/lib/camunits/halio.so:
    undefined symbol: gluOrtho2D


    And I'm not sure how to fix that either, it was not an error yesterday.


    Thank you.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    <woot> Put *that* in you .sig and smoke it, Knghtbrd.
    <Culus> You know he will read this :>
    <woot> heheheheh.
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Peter Otten at Nov 19, 2013 at 10:16 am

    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@0x7f8b31c5cfd0>
    alpha
    beta
    gamma


    And this works, too (but is a bit less robust):


    subprocess.Popen("ls -1", shell=True)
    <subprocess.popen object@0x7f8b31c5cd90>
    alpha
    beta
    gamma
  • Gene Heskett at Nov 19, 2013 at 4:19 pm

    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@0x7f8b31c5cfd0>
    alpha
    beta
    gamma

    And this works, too (but is a bit less robust):

    subprocess.Popen("ls -1", shell=True)
    <subprocess.popen object@0x7f8b31c5cd90>
    alpha
    beta
    gamma

    You are suggesting I edit /usr/lib/python2.6/subprocess.py?


    Thanks.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    I have great faith in fools -- self confidence my friends call it.
       -- Edgar Allan Poe
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Tim Chase at Nov 19, 2013 at 4:31 pm

    On 2013-11-19 11:19, Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?

    I think Peter is suggesting that line 3182 in _dynamic_tabs should
    either read (the better way)


       child = Popen([cmd, args])


    or (the not-so-good way)


       child = Popen(cmd, shell=True)


    If you drop a breakpoint right before that line, you should be able
    to tell what it's trying to pass into Popen:


       print("DEBUGGING: %s" % repr(cmd))
       child = Popen(...)


    which should give you insight into what's being called.


    -tkc




    PS: yes, I know about using "%r" in the format string rather than
    "%s" plus a repr() call, but weird things happen in the event that
    the parameter is a tuple; it could also have been written


       print("DEBUGGING: %r" % (cmd,))


    but I find that a tad uglier.
  • Gene Heskett at Nov 19, 2013 at 5:19 pm

    On Tuesday 19 November 2013 12:12:49 Tim Chase did opine:

    On 2013-11-19 11:19, Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?
    I think Peter is suggesting that line 3182 in _dynamic_tabs should
    either read (the better way)

    Now, this is a puzzle.
    _dynamic_tabs is not a file in /usr/lib/python2.6, nor does it "grep" in
    that directory.


    I need another clue, how much are they? :).
    child = Popen([cmd, args])

    or (the not-so-good way)

    child = Popen(cmd, shell=True)

    If you drop a breakpoint right before that line, you should be able
    to tell what it's trying to pass into Popen:

    print("DEBUGGING: %s" % repr(cmd))
    child = Popen(...)

    which should give you insight into what's being called.

    -tkc


    PS: yes, I know about using "%r" in the format string rather than
    "%s" plus a repr() call, but weird things happen in the event that
    the parameter is a tuple; it could also have been written

    print("DEBUGGING: %r" % (cmd,))

    but I find that a tad uglier.

    Thanks Tim.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    Once I finally figured out all of life's answers, they changed the
    questions.
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Tim Chase at Nov 19, 2013 at 5:31 pm

    On 2013-11-19 12:19, Gene Heskett wrote:
    On 2013-11-19 11:19, Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?
    I think Peter is suggesting that line 3182 in _dynamic_tabs should
    either read (the better way)
    Now, this is a puzzle.
    _dynamic_tabs is not a file in /usr/lib/python2.6, nor does it
    "grep" in that directory.

    I need another clue, how much are they? :).

    Doh, I misread the traceback. Looking more closely, it appears that
    the file in question is "/usr/bin/axis", line 3182 in the
    _dynamic_tabs *function* (or method), which is called at the
    module-level on line 3326 of the same file. Edit /usr/bin/axis to
    properly call Popen as mentioned in my previous email, and it should
    solve this issue.


    -tkc
  • Gene Heskett at Nov 19, 2013 at 6:43 pm

    On Tuesday 19 November 2013 12:42:28 Tim Chase did opine:

    On 2013-11-19 12:19, Gene Heskett wrote:
    On 2013-11-19 11:19, Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?
    I think Peter is suggesting that line 3182 in _dynamic_tabs should
    either read (the better way)
    Now, this is a puzzle.
    _dynamic_tabs is not a file in /usr/lib/python2.6, nor does it
    "grep" in that directory.

    I need another clue, how much are they? :).
    Doh, I misread the traceback. Looking more closely, it appears that
    the file in question is "/usr/bin/axis", line 3182 in the
    _dynamic_tabs *function* (or method), which is called at the
    module-level on line 3326 of the same file. Edit /usr/bin/axis to
    properly call Popen as mentioned in my previous email, and it should
    solve this issue.

    -tkc

    Interesting, a print cmd immediately in front of that is quite noisy:
    ['./camview-emc-f1oat.py', '-v', '1280x720', '-C', 'camview.cfg', '-g',
    'cam.ui', '-H', 'campins.hal', '-w', '150995278']


    So, I'll try this:
         child = Popen(["cmd"]), but that's not the fix. Thats 11 single
    quoted, csv separated strings in that "cmd", do I have to parse it and
    double quote & csv every one?


    So, back to the last email:
    Try child = Popen([cmd,args])


    I killed the machine & had to go reboot it with the reset button. I took
    the camera out and plugged it in, works great in camview or cheese. Focus
    seem a bit distant at close to 2" but usable.


    Then I took the line with the DEBUGGING statement back out, leaving just
    the print cmd above the


      child = Popen([cmd,args]), in line 3182, and now get this:


    Traceback (most recent call last):
       File "/usr/bin/axis", line 3329, in <module>
         _dynamic_tabs(inifile)
       File "/usr/bin/axis", line 3185, in _dynamic_tabs
         child = Popen([cmd,args])
       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
    AttributeError: 'list' object has no attribute 'rfind'


    With the usual exit & cleanup. Has this exposed another buglet?


    Thanks Tim.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    "Never underestimate the power of a small tactical nuclear weapon."
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Tim Chase at Nov 19, 2013 at 6:57 pm

    On 2013-11-19 13:43, Gene Heskett wrote:
    Interesting, a print cmd immediately in front of that is quite
    noisy: ['./camview-emc-f1oat.py', '-v', '1280x720', '-C',
    'camview.cfg', '-g', 'cam.ui', '-H', 'campins.hal', '-w',
    '150995278']

    This suggests that the value of "cmd" is indeed a list of
    [program_name, arguments...] which is what it should be. So the
    Popen(cmd) should be right.


    The next thing to verify that the working directory contains the
    program that is being called, and that it's executable. So I'd add
    some debugging dump, something like


       print(repr(cmd))
       ####### added stuff below #######
       import os
       print("Current directory: %s" % os.getcwd())
       cmd_name = cmd[0]
       if os.path.isfile(cmd_name):
         print("%s exists and has a mode of %o" % (
           cmd_name,
           os.stat(cmd_name).st_mode,
           ))
       else:
         print("%s isn't a file (missing or a directory?)" % cmd_name)
       ####### added stuff above #######
       child = Popen(cmd)


    This should give you information on where the current working
    directory is, whether the "./camview-emc-float.py" is in that
    directory, and whether it is executable or not.


    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name. Intentional?


    -tkc
  • xDog Walker at Nov 19, 2013 at 7:10 pm

    On Tuesday 2013 November 19 10:57, Tim Chase wrote:
    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name.

    That is exactly what I see using Monospace font where the letter and digit are
    different shapes.
    --
    Yonder nor sorghum stenches shut ladle gulls stopper torque wet
    strainers.
  • Gene Heskett at Nov 19, 2013 at 10:01 pm

    On Tuesday 19 November 2013 16:48:40 xDog Walker did opine:

    On Tuesday 2013 November 19 10:57, Tim Chase wrote:
    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name.
    That is exactly what I see using Monospace font where the letter and
    digit are different shapes.

    And I see exactly that in firefox. That l is indeed a 1. No wonder I
    couldn't type it, but could copy/paste it. Until I renamed it with an l.


    That bit of confusion first bit me hard, darned near 30 tears ago, building
    a trig functions library for the Microware C compiler running on a trs-80
    Color Computer. Source published in the Rainbow magazine, Offset plates
    made from a DMP printer. I don't remember that fondly at all. I traded
    printers because of that, the 9 pin DMP's used exactly the same image for
    both. I had quite a bit more gray hair when that was done. :(


    Thanks for making me go look again. :)


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    "Ninety percent of baseball is half mental."
       -- Yogi Berra
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • xDog Walker at Nov 19, 2013 at 7:26 pm

    On Tuesday 2013 November 19 10:57, Tim Chase wrote:
    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name.

    Gene,
         In an earlier email in this thread I lied when I stated the name of the
         file you were missing (I retyped what I thought I saw rather than
         copy+pasting).


         Tim Chase caught what is most likely your immediate problem: a digit
         one rather the letter ell in the filename. Where that filename came
         from is where you should be looking, imho.


    --
    Yonder nor sorghum stenches shut ladle gulls stopper torque wet
    strainers.
  • Gene Heskett at Nov 19, 2013 at 10:18 pm

    On Tuesday 19 November 2013 17:17:12 xDog Walker did opine:

    On Tuesday 2013 November 19 10:57, Tim Chase wrote:
    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name.
    Gene,
    In an earlier email in this thread I lied when I stated the name of
    the file you were missing (I retyped what I thought I saw rather than
    copy+pasting).

    Tim Chase caught what is most likely your immediate problem: a digit
    one rather the letter ell in the filename. Where that filename came
    from is where you should be looking, imho.

    That will be called to the attention of the wiki submitter. I doubt if its
    that important as long as its consistent though. Thank you.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    I am a bookaholic. If you are a decent person, you will not sell me
    another book.
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • Gene Heskett at Nov 19, 2013 at 9:39 pm

    On Tuesday 19 November 2013 16:03:23 Tim Chase did opine:

    On 2013-11-19 13:43, Gene Heskett wrote:
    Interesting, a print cmd immediately in front of that is quite
    noisy: ['./camview-emc-f1oat.py', '-v', '1280x720', '-C',
    'camview.cfg', '-g', 'cam.ui', '-H', 'campins.hal', '-w',
    '150995278']
    This suggests that the value of "cmd" is indeed a list of
    [program_name, arguments...] which is what it should be. So the
    Popen(cmd) should be right.

    The next thing to verify that the working directory contains the
    program that is being called, and that it's executable. So I'd add
    some debugging dump, something like

    print(repr(cmd))
    ####### added stuff below #######
    import os
    print("Current directory: %s" % os.getcwd())
    cmd_name = cmd[0]
    if os.path.isfile(cmd_name):
    print("%s exists and has a mode of %o" % (
    cmd_name,
    os.stat(cmd_name).st_mode,
    ))
    else:
    print("%s isn't a file (missing or a directory?)" % cmd_name)
    ####### added stuff above #######
    child = Popen(cmd)

    This should give you information on where the current working
    directory is, whether the "./camview-emc-float.py" is in that
    directory, and whether it is executable or not.

    Just an observation here, it looks like you might have a "one"
    instead of an "ell" in "float" in the file-name. Intentional?

    -tkc

    That is a possibility, I know I had some file not found errors that were
    only fixed by do an mv (copy/paste for ls listing camview-emc-float.py, in
    which case the miss-spelling is how its name on the web page I pulled it
    from.


    Adding , shell=True to the Popen fixed it so it runs, but with unusual
    results. It is SUPPOSED to make tab controlled overlay over the linuxcnc
    backplot window when that tab is selected. The tab is there, but the
    window is blank because its opening a new window. And the final halio
    stanza of the config isn't running, I presume because its also reporting:


    ** (camview-emc-float.py:3775): WARNING **:
    /usr/local/lib/camunits/halio.so: undefined symbol: gluOrtho2D


    on the linuxcnc launch.


    I do not have libgl installed because then the other camera didn't work,
    but am using the mesa-swx11 version so it would work. So what I'll
    probably have to do is install libgl long enough to rebuild halio.so and
    install it. I think its named wrong, it should be Duncan, like the yo-yo
    maker. :)


    So I guess thats next, re-install libgl & -dev, rebuild halio.so, (no error
    yip about a missing GL/gl.h now, and then see if it works with this camera.
    But I have a bet with myself that it will look like its out of horizontal
    synch. Actually it was a black screen, reinstall the lib gl-mesa-swx11
    stuff, the camera works again it its own window, and I still see the above
    undefined gluOrtho2D error.


    Thanks a bunch Tim, but I think I'll see if the halio.c author can speak to
    this one.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    You're too beautiful to ignore. Too much woman.
       -- Kirk to Yeoman Rand, "The Enemy Within", stardate
    unknown
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • xDog Walker at Nov 19, 2013 at 7:06 pm

    On Tuesday 2013 November 19 10:43, Gene Heskett wrote:
    Interesting, a print cmd immediately in front of that is quite noisy:
    ['./camview-emc-f1oat.py', '-v', '1280x720', '-C', 'camview.cfg', '-g',
    'cam.ui', '-H', 'campins.hal', '-w', '150995278']

    The file it cannot find is apparently ./camview-emc.float.py

    So, I'll try this:
    child = Popen(["cmd"]), but that's not the fix.

    That should produce the same result as before (plus gales of laughter from the
    bleachers).


    --
    Yonder nor sorghum stenches shut ladle gulls stopper torque wet
    strainers.
  • Mark Lawrence at Nov 19, 2013 at 7:22 pm

    On 19/11/2013 19:06, xDog Walker wrote:
    On Tuesday 2013 November 19 10:43, Gene Heskett wrote:
    Interesting, a print cmd immediately in front of that is quite noisy:
    ['./camview-emc-f1oat.py', '-v', '1280x720', '-C', 'camview.cfg', '-g',
    'cam.ui', '-H', 'campins.hal', '-w', '150995278']
    The file it cannot find is apparently ./camview-emc.float.py
    So, I'll try this:
    child = Popen(["cmd"]), but that's not the fix.
    That should produce the same result as before (plus gales of laughter from the
    bleachers).

    Just to be sure is it a simple typo "f1oat" with a one instead of
    "float" with an ell?


    --
    Python is the second best programming language in the world.
    But the best has yet to be invented. Christian Tismer


    Mark Lawrence
  • Gene Heskett at Nov 19, 2013 at 10:16 pm

    On Tuesday 19 November 2013 17:02:37 Mark Lawrence did opine:

    On 19/11/2013 19:06, xDog Walker wrote:
    On Tuesday 2013 November 19 10:43, Gene Heskett wrote:
    Interesting, a print cmd immediately in front of that is quite noisy:
    ['./camview-emc-f1oat.py', '-v', '1280x720', '-C', 'camview.cfg',
    '-g', 'cam.ui', '-H', 'campins.hal', '-w', '150995278']
    The file it cannot find is apparently ./camview-emc.float.py
    So, I'll try this:
    child = Popen(["cmd"]), but that's not the fix.
    That should produce the same result as before (plus gales of laughter
    from the bleachers).
    Expected. Python code isn't my forte obviously. :)

    Just to be sure is it a simple typo "f1oat" with a one instead of
    "float" with an ell?

    That it was, now renamed. And now that I know it works albeit in a
    separate window, I will now go back to the original syntax just to check,
    but no, the additional ", shell=True" without the double-quotes, inside the
    parens is still needed.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    I never met a man I didn't want to fight.
       -- Lyle Alzado, professional football lineman
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • xDog Walker at Nov 19, 2013 at 5:33 pm

    On Tuesday 2013 November 19 09:19, Gene Heskett wrote:
    _dynamic_tabs is not a file in /usr/lib/python2.6, nor does it "grep" in
    that directory.

    The Traceback says that _dynamic_tabs is in /usr/bin/axis .


    --
    Yonder nor sorghum stenches shut ladle gulls stopper torque wet
    strainers.
  • Ethan Furman at Nov 19, 2013 at 4:47 pm

    On 11/19/2013 08:19 AM, Gene Heskett wrote:
    On Tuesday 19 November 2013 11:16:10 Peter Otten did opine:
    Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?

    Yup. Just make sure and change it back after you figure out what's going on.


    --
    ~Ethan~
  • Gene Heskett at Nov 19, 2013 at 10:23 pm

    On Tuesday 19 November 2013 17:20:54 Ethan Furman did opine:

    On 11/19/2013 08:19 AM, Gene Heskett wrote:
    On Tuesday 19 November 2013 11:16:10 Peter Otten did opine:
    Gene Heskett wrote:
    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)
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?
    Yup. Just make sure and change it back after you figure out what's
    going on.

    --
    ~Ethan~

    Tried, no deal, took it back to the -bak copy.


    Where I need the Popen patch was actually in /usr/bin/axis, which is the
    name of the programs gui I run. There are several available.


    Many Thanks.


    Cheers, Gene
    --
    "There are four boxes to be used in defense of liberty:
      soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)


    <Overfiend> Joy: Hey, I'm an asshole. Assholes emit odious gas.
                 That's what we do.
    A pen in the hand of this president is far more
    dangerous than 200 million guns in the hands of
              law-abiding citizens.
  • xDog Walker at Nov 19, 2013 at 5:07 pm

    On Tuesday 2013 November 19 08:19, Gene Heskett wrote:
    You are suggesting I edit /usr/lib/python2.6/subprocess.py?

    You should use either


        subprocess.Popen(["ls", "-l"])
    or


        subprocess.Popen("ls -l")


    The argument to the first is a two element list.
    The argument to the second is a string.


    You used "ls -l" as the process to run, thus
    " OSError: [Errno 2] No such file or directory"


    See the subprocess documentation.


    --
    Yonder nor sorghum stenches shut ladle gulls stopper torque wet
    strainers.
  • Peter Otten at Nov 19, 2013 at 5:46 pm

    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@0x7f8b31c5cfd0>
    alpha
    beta
    gamma

    And this works, too (but is a bit less robust):

    subprocess.Popen("ls -1", shell=True)
    <subprocess.popen object@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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedNov 19, '13 at 9:31a
activeNov 19, '13 at 10:23p
posts24
users7
websitepython.org

People

Translate

site design / logo © 2022 Grokbase