[Tutor] Two Scripts, Same Commands, One Works, One Doesn't

Cameron Simpson cs at cskk.id.au
Wed May 15 19:21:41 EDT 2019


On 15May2019 08:16, Stephen P. Molnar <s.molnar at sbcglobal.net> wrote:
>I am writing scripts to semi-automate some of my Quantum Chemistry 
>software and have encountered a problem that has me baffled. The two 
>scripts have the same form, the only difference being the commands. 

As you say, the scripts are the same but for that tiny difference. So 
let's look:

>for nvar in ligand:
>    command = ["./pythonsh", "./prepare_ligand4.py",
[...]
>    command = ["./pythonsh", "./prepare_pdf4.py",
[...]
>The errors are:
>
>runfile('/home/comp/Apps/Models/1-NerveAgents/Ligands/calc_pdf.py', 
>wdir='/home/comp/Apps/Models/1-NerveAgents/Ligands')
>b''
>None
>/sdc1/Apps/MGLTools2-1.1/bin/python: can't open file 
>'./prepare_pdf4.py': [Errno 2] No such file or directory

So: first issue: your prepare_pdf4.py file is missing. Is it really 
missing or are you in the wrong working directory? Might its filename be 
mistyped?

BTW, you shouldn't need the leading "./" on the .py filenames: harmless 
but also useless. If you copied that usage from the "./pythonsh" 
incantation, the circumstances are different. You probably need the 
"./pythonsh" to execute it directly from the current directory, which is 
not in your $PATH (and indeed it should not be - that way lies 
subversion).  The .py files are just data and do not need this.

Then, the second part. This is a totally separate error from your 
script. Jumping to the bottom...

>Traceback (most recent call last):
[...]
>  File "/home/comp/Apps/Models/1-NerveAgents/Ligands/calc_pdf.py", 
>line 23, in <module>
>    print ('Subprocess FAILED:', proc.command)
>
>AttributeError: 'Popen' object has no attribute 'command'

Because the prepare_pdf.py file is missing, for whatever reason, your 
"if proc.returncode" fire. And in that code you access "proc.command", 
which isn't defined. In the former script it doesn't try to execute this 
line because pythonsh succeeded.

Looking at the subprocess docs, I think that is spelled "cmd", not 
"command".

>I have attached the two scripts that are called and a test input file.

This is a text only list. Attachments are dropped before your message 
goes out. Fortunately you have enough information in the main body of 
the message.

>Googling has not helped me to find a solution [...]

1: I recommend duckduckgo instead of Google for privacy/tracking 
reasons.

2: When I search, I tend to find people with the same problem, not 
necessarily people with answers. But this question might be hard to get 
good hits on because the problem lies in a spelling error, which others 
may not have made that way.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Tutor mailing list