Windows Printer Installer


Keywords
automatic, install, printer, python, windows
License
Other
Install
pip install wpi==0.10.2

Documentation

Windows Printer Installer

WPI 是一个使用 Python 3 编写,在 Windows 下使用的,安装非本地打印机 (包括驱动,端口) 的工具。

如果你想运行一下程序就自动安装好多个 共享的 打印机或 TCPIP 打印机,这个程序就是你要找的。

通过 Resilio Sync (原 BitTorrent Sync) 直接获取独立程序

如果你只想获取独立的程序,那么需使用 Resilio Sync 同步以生成好的程序。

Resilio Sync 下载地址:

https://www.resilio.com/platforms/desktop/

同步密钥:

BQ5LNWA34LIG3ETZMJ73ZEGMBW4P2WX24

通过 Python 模块方式安装

先安装 Python 3 (建议选择的 32位 3.4 版),安装时注意勾选 pip 组件。

然后手动下载安装相应版本的 pywin32

再以管理员管理员权限运行:

pip install wpi

完成安装后,wpi 应该就可以直接在命令行下运行了。

注:为了解压在压缩包里的驱动,应当下载安装 7-Zip , 如果想把 wpi 打包成可以多系统下执行的独立程序,应当安装32位的 7-Zip

生成独立的程序

如果想在没有 Python 环境的系统下运行,得把 Python 环境和 wpi 及其依赖的模块打包在一起。 先安装 Pyinstaller:

pip install pyinstaller

然后运行 wpi 的打包命令:

wpi2exe

这样会生成独立的 exe 文件, wpi2exe 使用 LOCALAPPDATA%\wpi2exe\config.py 作为配置文件,如果此文件不存在,wpi2exe 会自动创建它。 可以编辑它以设置输出目录等。正如后缀名所示,此配置文件是一个 Python 脚本。

参数用法

命令行参数的定义类似 Python 函数。

具名参数运行例子:

wpi ps=my_printers.py drivers=my_drivers_dir

参数 ps

ps 用来指定一个已定义了打印机列表的文件。

参数 drivers

drivers 用来指定驱动程序的总目录。

不提供参数时程序运行的方式

当没有提供 ps 时,程序会使用 默认资源目录 下的 ps.py 文件作为默认打印机列表文件以直接安装打印机, 如果不存在则会进入 交互模式

当没有提供 drivers 时,程序会使用 默认资源目录 下的 drivers 目录作为默认参数。

默认资源目录在哪?

以独立程序运行时,默认资源目录既是程序所在的目录。

以模块脚本方式运行程序时,默认资源目录是 %LOCALAPPDATA%\wpi

%LOCALAPPDATA% 在哪?

它是一个环境变量,如果你的账户名是 韩梅梅,而且系统是 Windows 7 的话, 那么 %LOCALAPPDATA% 可能就是: C:\Users\韩梅梅\AppData\Local\

交互式界面的用法

提示输入时,可以直接输入 ps 文件的路径,或输入 m/l 命令(见下面的作用说明),退出时用 q 命令。

m 命令

1. 创建样例打印机列表文件

会在 默认资源目录 里创建名为 _ps.py 的样例打印机列表文件以作为编写打印机列表文件时的参考。

2. 创建供存放打印机驱动的目录结构

会在 默认资源目录 里创建名为 drivers 的目录和以 系统位数发行版本 为名的子目录。

你应该把驱动程序包根据适用情况,放在合适的目录里。

驱动程序包裹可放置在特定的发行版本目录下,也可放置在上一级,这样就表示这个驱动可用于多系统。

下载的驱动文件只要是 7-Zip 可以解包(解压)的文件就无需手动解包。程序会自动寻找包裹里的 inf 文件并比较在打印机列表文件里给定的驱动名,符合就会使用此包裹里的这个 inf 文件。 包裹里的 inf 文件只能在第一级包裹里,举个反例: 把 inf 打包为包裹1,然后把包裹1再打包成包裹2。这样的情况下程序就找不到 inf 文件了,因为包裹2的文件列表里无 inf 文件!

l 命令

列出 包裹文件里的inf文件 或 inf文件里 的驱动名。