Почему мой скрипт Python работает с методом запуска хоста Window Script, но НЕ с методом Exec

У меня есть простой скрипт Python ("hi.py"), как показано ниже.

import time

print("HI")
time.sleep(5)

Я использую Excel VBA для вызова "hi.py" с помощью Windows Script Host's Run Method (код, как показано ниже). Это работает.

sub testRun()
    Dim wsh As Object
    Dim a As Variant

    Set wsh = CreateObject("WScript.Shell")
    a = wsh.run("C:\tmpFolder\pyProject\myProject\hi.py", 1, True)
End Sub

Но если я использую Windows Script Host's Exec Method, а не Run Method, мой компьютер скажет hi.py is not a valid win 32 application.

Sub testExec()
    Dim wsh As Object, oexec As Object

    Set wsh = CreateObject("WScript.Shell")
    Set oexec = wsh.exec("C:\tmpFolder\pyProject\myProject\hi.py")
End Sub

Как я могу запустить свой скрипт Python с помощью Windows Script Host Exec Method? Большое тебе спасибо.


person PaichengWu    schedule 19.07.2017    source источник
comment
wsh.exec требуется двоичный исполняемый файл. Файл Python не является ни двоичным, ни исполняемым. Существуют методы компиляции файла Python в EXE. Используйте Google, чтобы найти их.   -  person DYZ    schedule 19.07.2017
comment
@DYZ спасибо. Я погуглю что-нибудь вроде py2exe.   -  person PaichengWu    schedule 19.07.2017
comment
Взгляните на это: stackoverflow.com/questions/45410316/   -  person Uri Goren    schedule 31.07.2017


Ответы (1)


Методу exec() требуется строка, которую можно передать в командную строку. Попробуйте python C:\tmpFolder\pyProject\myProject\hi.py или python3 C:\tmpFolder\pyProject\myProject\hi.py, как если бы вы вводили CMD.exe.

Ссылка на синтаксис в MSDN

person Till Fischer    schedule 08.02.2018
comment
Я пытаюсь python C:\tmpFolder\pyProject\myProject\hi.py, но не вижу HI в окне Python. - person PaichengWu; 05.03.2018