2017-07-19 55 views
0

我有一个简单的Python脚本(“hi.py”),如下为什么我的Python脚本工作的窗口脚本宿主运行方法,但不是exec方法

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? 非常感谢。

+0

键入'wsh.exec'需要一个二进制可执行文件。 Python文件既不是二进制也不是可执行文件。有一些方法可以将Python文件编译到EXE中。使用Google找到它们。 – DyZ

+0

@DYZ谢谢。我会将谷歌的东西,如'py2exe'。 – PaichengWu

+0

看看这个:https://stackoverflow.com/questions/45410316/is-there-a-way-to-call-a-python-code-in-excel-vba –

回答

0

方法exec()需要一个可传递给命令行的字符串。尝试python C:\tmpFolder\pyProject\myProject\hi.pypython3 C:\tmpFolder\pyProject\myProject\hi.py,就像你会在CMD.exe

Link to the Syntax at MSDN

+0

我尝试'蟒蛇C:\ tmpFolder \ pyProject \ myProject \ hi.py',但在python窗口中看不到'HI'。 – PaichengWu

相关问题