将 Python 注册为 Windows 的脚本引擎

相关说明

Python, Windows Script Engine, Active Script

概述

Python 是一门愈久弥新的语言,本文将说明如何把 Python 注册为 Windows 的脚本引擎。Windows 的脚本引擎是一门旧时代的技术,JScript 就像 AppleScript 一样,系统一直自带,但就是没流行起来,本文一部分是为说明如何在 EverEdit 中使用 Python 语言编写宏而撰写。下面的背景部分是几句对 Python 语言的评论,如果寻求注册步骤,则可以跳过。

背景

它的热力指数中的表现可谓厚积薄发,先上数据,在聊聊各公司对它的态度。

PYPL 语言排行

pypl.github.io

在最近 2019 年 9 月的 PYPL(PopularitY of Programming Language,编程语言流行指数)中,Python 脚本语言拔得头筹。

RankChangeLanguageShareTrend
1Python29.21 %+4.6 %
2Java19.9 %-2.2 %
3Javascript8.39 %+0.0 %
4C#7.23 %-0.6 %
5PHP6.69 %-1.0 %
6C/C++5.8 %-0.4 %
7R3.91 %-0.2 %
8Objective-C2.63 %-0.7 %
9Swift2.46 %-0.3 %
10Matlab1.82 %-0.2 %
11+1TypeScript1.77 %+0.2 %
12+4Kotlin1.55 %+0.6 %
13VBA1.44 %-0.0 %
14-3Ruby1.4 %-0.2 %
15+2Go1.2 %+0.3 %
16-2Scala1.14 %-0.1 %
17-2Visual Basic1.05 %-0.1 %
18+2Rust0.66 %+0.3 %
19-1Perl0.53 %-0.2 %
20-1Lua0.37 %-0.0 %
21Haskell0.3 %-0.0 %
22+1Julia0.29 %+0.1 %
23-1Delphi0.27 %+0.0 %

Tiobe 语言排行

https://www.tiobe.com/tiobe-index/

在 Tiobe 中排第三。

Sep 2019Sep 2018ChangeProgramming LanguageRatingsChange
11Java16.661%-0.78%
22C15.205%-0.24%
33Python9.874%+2.22%
44C++5.635%-1.76%
56
C#3.399%+0.10%
65
Visual Basic .NET3.291%-2.02%
78
JavaScript2.128%-0.00%
89
SQL1.944%-0.12%
97
PHP1.863%-0.91%
1010Objective-C1.840%+0.33%
1134
↑↑
Groovy1.502%+1.20%
1214
Assembly language1.378%+0.15%
1311
Delphi/Object Pascal1.335%+0.04%
1416
Go1.220%+0.14%
1512
Ruby1.211%-0.08%
1615
Swift1.100%-0.12%
1720
Visual Basic1.084%+0.40%
1813
↓↓
MATLAB1.062%-0.21%
1918
R1.049%+0.03%
2017
Perl1.049%-0.02%

微软

微软文档甚至为 Python 推出了一个子目录,虽然微软也奋力发展 F#,但拥抱开源的不止于口号,而是全身心。可以理解,因为带来无不带来 Azure 潜在用户和潜在收入呀,现代的微软比以往更强大了。加上 WSL 的进化,设想其推出 5.0 版本时,Linux 阵营会有更多的人说 exFAT 是进入 Linux 内核的木马。

https://docs.microsoft.com/en-us/windows/python/

谷歌

谷歌是一个快被遗忘的名字,我习惯称之为 Google,Python 创始人曾供职于 Google 7 年,后来,也许是使用 Python 并不能帮助 Google 产生更大效用,也可能是 Guido van Rossum 觉得 DropBox 更需要他,他离开了 Google。

后来,Google 除了 Java,还有了 Go、Dart/Flutter、Kotlin,但应该依然有数不清的 Python 遗留代码。

https://developers.google.com/edu/python/

脸书

Facebook 并不排斥 Python,但自家 HHVM 和 Hack,主要还是源于 PHP 系和 Java。

国内公司

国内的金山、豆瓣公司都是把 Python 玩的很六的,以及一些早期研究 Plone 的公司,也活得还不错。

流行的结论

Python 之所以如此流行,最重要的是表达性好,简洁,开源、对科研领域友好,过程式、函数式、面向对象多范式支持、自带方便的数据结构,以及一小部分不可忽视的 Google 对其早年的支持,但不是决定性的。现在之所以能登顶,主要是源于 TensorFlow、Scikit-learn、Keras、PyTorch、Caffe 等这些 AI 库对 Python 的直接支持。

注册的步骤

概念

  • Windows Script Hosts:这是微软从 Windows 95 时代就在 Windows 上推出的自动化脚本技术。它基于 Com 技术公开一组通用接口。
  • ActiveX Scripting Engine:任何实现这些接口的语言,都可以成为 Windows 脚本语言,我们即可把这种语言称为 ActiveX Scripting Engine。比如 JScript, VBS, Perl, Ruby, Tcl, PHP, Delphi, Python, XSLT, Rexx 等。
  • ActiveState:在 Windows 上 ActiveState 公司擅长此类工作,它们家不但有各种 ActiveX Scripting Engine 还有相关 IDE。
  • PyWin32:Windows 编程接口的 Python 语言实现。

注册步骤

直接用管理员安装 ActivePython 发行的社区版,但这种方法不推荐。推荐以下步骤:

1、安装 Python 和 PyWin32 包,两者版本号要对应,Windows 下都有可执行文件。

2、注册 axscript(下文中Python路径替换为你的路径),注册脚本位于 <Python安装目录>\Lib\site-packages\win32comext\axscript\client\pyscript.py,注册命令如下,管理员运行:

pythonw c:\Python36\Lib\site-packages\win32comext\axscript\client\pyscript.py

相关问题

问题:Debugging extensions (axdebug) module does not exist – debugging is disabled..

解决

这句其实是pywin32源码中的一句,跳过即可。

问题:Can’t find script engine ”Python“ for script

解决

以管理员权限执行本文的步骤。

Python 36 等高版本中非管理员权限显示注册成功,但无法运行脚本 (待解决) 。

问题:Can’t find script engine ”VBScript“ for script

解决

命令行窗口用管理员执行如下命令

regsvr32 vbscript.dll
regsvr32 jscript.dll

发表评论

电子邮件地址不会被公开。 必填项已用*标注