1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。

2022-01-10 05:39:45

質問

Python 3.4.1を使用したコードは以下のとおりです。

import subprocess    
subprocess.call(['hello.py', 'htmlfilename.htm'])
Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    subprocess.call(['hello.py', 'htmlfilename.htm'])
  File "C:\Python34\lib\subprocess.py", line 537, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Python34\lib\subprocess.py", line 858, in __init__
    restore_signals, start_new_session)
  File "C:\Python34\lib\subprocess.py", line 1111, in _execute_child
    startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application

また、サブプロセスを使用する以外に、引数付きで Python スクリプトを呼び出す別の方法はありますか?

どのように解決するのですか?

エラーはかなりはっきりしています。ファイル hello.py は実行可能ファイルではありません。実行ファイルを指定する必要があります。

subprocess.call(['python.exe', 'hello.py', 'htmlfilename.htm'])

あなたが必要とするのは python.exe を検索パス上に表示するか、呼び出し側のスクリプトを実行している実行ファイルへのフルパスを渡すことができます。

import sys
subprocess.call([sys.executable, 'hello.py', 'htmlfilename.htm'])