[Tutor] No file or directory error using subprocess and Popen
Jim
jf_byrnes at comcast.net
Mon May 15 21:37:10 EDT 2017
On 05/14/2017 11:19 PM, boB Stepp wrote:
> On Sun, May 14, 2017 at 10:57 PM, Jim <jf_byrnes at comcast.net> wrote:
>> I am running this on Mint 18.
>> This is the third script I have written to open and position windows in
>> workspaces. The first two work, but trying to open ebook-viewe r (calibre)
>> with a specific book produces the following error.
>> If I run the same command in the terminal it works without an error.
>>
>>
>> Exception in thread Thread-4:
>> Traceback (most recent call last):
>> File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
>> self.run()
>> File "/usr/lib/python3.5/threading.py", line 862, in run
>> self._target(*self._args, **self._kwargs)
>> File "/home/jfb/MyProgs/Scripts/place_windows_OO_WS3.py", line 24, in
>> open_it
>> subprocess.call([self.program])
>> File "/usr/lib/python3.5/subprocess.py", line 557, in call
>> with Popen(*popenargs, **kwargs) as p:
>> File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
>> restore_signals, start_new_session)
>> File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
>> raise child_exception_type(errno_num, err_msg)
>> FileNotFoundError: [Errno 2] No such file or directory: 'ebook-viewer
>> /home/jfb/Documents/eBooks/Javascript/GOOGLE_SHEETS/googlespreadsheetprogramming.epub'
>>
>> Code:
>>
>> # place_windows_OO_WS3.py
>>
>> import subprocess
>> from subprocess import Popen,PIPE
>> import threading
>> import time
>>
>> class Place():
>>
>> def __init__(self):
>> self.programs = ['jedit', 'google-chrome', 'doublecmd',
>> 'ebook-viewer
>> /home/jfb/Documents/eBooks/Javascript/GOOGLE_SHEETS/googlespreadsheetprogramming.epub']
>> self.classname = {'jedit' : 'sun-awt-X11-XFramePeer',
>> 'google-chrome':'google-chrome',
>> 'doublecmd':'doublecmd',
>> 'calibre-ebook-viewer': 'libprs500'}
>> self.open_and_move()
>>
>> def open_it(self):
>> subprocess.call([self.program])
>
> I'm not very familiar with using the subprocess module yet, but when
> the above call to "subprocess.call([self.program])" occurs, isn't
> subprocess.call() expecting a list like
>
> ['ebook-viewer', '/home/jfb ...']
>
> ?
>
> Hope I am not off-track here.
>
> boB
Bob,
I thought you were on to something, especially since Steven suggested
about the same thing. See my reply to Steven. It seems to be looking for
a str or byte not a list.
Thanks, Jim
More information about the Tutor
mailing list