0
私はしばらく検索してもそれを理解できません... ここで私のコードが間違っています。python:Popen FileNotFoundErrorの問題:[WinError 2]
import subprocess as sp
import os
cmd_args = []
cmd_args.append('start ')
cmd_args.append('/wait ')
cmd_args.append(os.path.join(dirpath,filename))
print(cmd_args)
child = sp.Popen(cmd_args)
コマンドプロンプトが表示されます。
['start ', '/wait ', 'C:\\Users\\xxx\\Desktop\\directory\\myexecutable.EXE']
Traceback (most recent call last):
File "InstallALL.py", line 89, in <module>
child = sp.Popen(cmd_args)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1114, in _execute_child startupinfo)
FileNotFoundError: [WinError 2]
ファイルパスに2つのバックスラッシュが間違っているようです。
私は
print(os.path.join(dirpath,filename))
をすればそれは私がファイルがあると確信している
C:\Users\xxx\Desktop\directory\myexecutable.EXE
を返すでしょうね。 これをどのようにデバッグできますか?
ダブルバックスラッシュが問題にならないように、最初のバックスラッシュが必要です –
'shell = True'も渡すことができますか? – Idos
パスが正しいです。ダブルバックスラッシュは問題ではなく、文字列の 'repr'のアーティファクトです。いずれにせよ、問題は最後の引数であり、 'start'ではないと確信していますか? 'start' a *コマンド*またはシェル組み込みですか? – Bakuriu