无法在WSH下运行Python脚本编程

4

我正在尝试让WSH运行Python .pys脚本,但是遇到了难题 - 我已经在两台机器上尝试过了,W7x64和Server2012,两次都是相同的结果,cscript总是会返回:

CScript Error: Can't find script engine "Python"

步骤(全部在本地管理员帐户下完成):

  1. 安装Python 3.5.1(x86)
  2. 从Mark Hammond的sourceforge安装Pywin32(x86)
  3. 运行\site-packages\win32comext\axscript\client\pyscript.py,返回'Registered: Python'
  4. 检查注册表/HKCR——有很多对pys和python的引用,如预期所示
  5. 尝试运行>cscript hello.pys get

    CScript错误:找不到脚本引擎“Python”

有什么线索吗?我真的不想使用ActivePython。


你需要安装一个脚本引擎。这就是ActiveState的作用。我不知道其他的。 - Peter Wood
另外,请参阅 https://community.activestate.com/node/7319 和答案中的建议。 - Peter Wood
1
@PeterWood 谢谢,但我不知道ActivePython是必需的 - 我相信脚本引擎实际上是由pywin32(又名Python for Windows Extensions)提供的,这意味着我已经按照https://community.activestate.com/node/7319上的说明操作了,但仍然无效。 - gh0st
1
请确保您使用32位版本的cscript与32位(x86)的Python。例如:c:\Windows\SysWOW64\cscript.exe。看起来您使用了默认的64位版本,在64位的Windows上。 - patthoyts
2个回答

1

看起来在Windows上使用Python有些麻烦。所以,我也遇到了你的问题,我按照以下步骤进行了操作:

  1. python.org下载Python。(你可能已经有了)
  2. 从SourceForge下载PyWin32
  3. 从python.org下载SetupTools
  4. 在桌面或开始菜单上,右键单击“我的电脑”,然后单击“属性”。
  5. 在“高级”选项卡中,单击“环境变量”。
  6. 在底部的“系统变量”中,找到“PATH”变量并双击它。
  7. 在变量值框的末尾添加C:\Python27\C:\Python27\scripts(假设你已经将Python安装在C:\Python27位置)。
  8. 在所有对话框中单击“确定”。

尽管如此,对我而言它仍然不起作用,但我被 <python_install>\scripts 所困惑,在那里找到了 pywin32_postinstall.py,运行它就解决了问题!

  1. 执行 \scripts\pywin32_postinstall.py
  2. 我一直得到以下跟踪信息:

    Debugging extensions (axdebug) module does not exist - debugging is disabled..

我将其追溯到 Lib\site-packages\win32comext\axscript\client\framework.py 并注释掉了打印该消息的 trace 调用……一切都很好。

C:\Users\jdoe>type  d:\python2vbs.wsf
<?XML Version="1.0" encoding="ISO-8859-1"?>
<?job error="true" debug="false"?>
<package>
        <job>

        <script language="VBScript">
        <![CDATA[
public sub vbsOutput(strText)
        wscript.echo strText & " (from vbsOutput)"
end sub
        ]]>
        </script>

        <script language="Python">
        <![CDATA[
import sys
globals.vbsOutput('python testing')
        ]]>
        </script>

        </job>
</package>

C:\Users\jdoe>cscript  d:\python2vbs.wsf
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

python testing (from vbsOutput)

0

@thecarpy发布的原始答案提供了有用的信息。还有一件事情需要补充。如果您安装了多个版本的Python,您需要确保与您注册为脚本引擎的版本相匹配的Python.exe是您搜索路径中找到的第一个Python.exe。因此,将其放在路径的末尾(如前面的答案中建议的那样)可能并不总是有效。在我弄清楚这一点之前,我的头发要多一些。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接