0

test1.py と test2.py の 2 つのモジュールがあり、どちらも c:/python27 の下にあります。test1.py から、以下に示すように test.py を呼び出そうとしていますが、エラーが発生します。

Test1.py

import subprocess
print 'Im in module-1'

subprocess.Popen('c:/python27/test2.py')

test2.py

print 'Im in module-2'

エラー:-

C:\Python27>python test1.py
Im in module-1
Traceback (most recent call last):
  File "test1.py", line 4, in <module>
    subprocess.Popen('c:/python27/test2.py')
  File "C:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
    startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
4

3 に答える 3

1

ここでの問題は、subprocess作業に慣れているシェルとは大幅に異なる可能性がある、まったく新しいサブシェルを起動することだと思います。Windowsですべてがどのように機能するかはわかりませんが、たとえばUNIXでは、サブプロセスは/bin/shデフォルトで使用されます。機能の少ないシンプルなシェル。subprocessWindowsマシンで使用しているデフォルトのシェルは、 .py. 他の人が言及したように、インタープリターを明示的に指定するのが最善です。

これはあなたにとって良い解決策かもしれません: https://stackoverflow.com/a/912847/1583239

于 2013-06-27T17:02:22.730 に答える
-2

Python スクリプトは、python コマンドを使用して実行する必要があることに注意してください。

c:>python 'c:/python27/test2.py' 

Windows は .py ファイルの実行方法を認識していません。

于 2013-06-27T16:53:36.847 に答える