在阅读完下一章之后,你需要给环境添加各种滤镜脚本和插件。仓库里的 @plugins.md 是我的插件列表,大多数情况下你只需要手动安装最前面的 Special 和 Modules 部分,剩下四个板块的可以直接去 Release 里下载最新合集包。注意,Plugin-Levelx 中的 .py 文件需要丢到根目录或 site-packages 文件夹里,其他的任何文件、文件夹,保留压缩包中的相对位置,丢到 vs-plugins 文件夹里。安装 Modules 部分需要运行对应的的命令,请保证命令行中的 pip 是本环境的(你可以输入 where pip 来确认)。
本文语意中的 VapourSynth 环境基本上由 Python 的 Windows embeddable package、VapourSynth-Portable、动态链接库插件、Python 脚本插件和一些 Python 包组成。
- 到 VapourSynth 的 GitHub 仓库里下载一个
VapourSynth64-Portable,在 文档 中确定该版本需要的 Python 版本(如果有多版本兼容,选大于等于 3.10 的版本)。下载对应版本的 WinPython 推荐不要下载dot后缀的版本,因为缺少一些很有用的库;同时不推荐下载带PyTorch (Torch)的版本,因为用不上,而且很大;从某个发行版开始有了一种slim发行版,看注释是去掉Torch的版本,我们推荐下载它。 - 解压 WinPython 到本地,一般解压出来的文件夹外层叫“WPy64-版本号”,该文件夹下有一个名叫“python”的子文件夹(在早一些的版本中此文件夹名类似“python-版本号.amd64”,和 Python Windows Embeddable Package 看起来差不多),我们一般把这个子文件夹当做 Python 的环境根目录,记作
EnvRoot。在进行接下来的一切操作之前(因为如果之后再重命名会有概率触发问题),出于管理环境考虑,你可以在此时任意重命名外层文件夹,比如我比较喜欢把它重命名成“WPy64-版本号+Vapoursynth版本号”。 - 将 VapourSynth64-Portable 解压到 根目录(注意,不是外层文件夹) 里,应该会提示有几个文件重复,直接替换就好。
- 从 VapourSynth-R66 开始,Portable 安装附带一个 wheel 子文件夹,需要手动安装里面的
.whl文件,这样的好处是可以告诉 pip 你有一个 VapourSynth,这给安装很多脚本提供了巨大的方便。具体操作是在根目录下打开命令行,运行python -m pip install .\\wheel\\xxx.whl,其中xxx.whl选择对应你 Python 版本的那个(例如文件名含cp312则此文件对应Python 3.12)。
WinPython 在与根目录同级的地方放了一堆包装过的控制台(比如 WinPython Command Prompt.exe),双击他们,自动会将 Python 环境引入系统环境变量。
搭建好基本环境之后,就可以往里面塞插件了。插件分为三种:
- 动态链接库插件:这类插件的特点是编译后形成一个
.dll文件,他们大多数都被作者放在 GitHub 仓库里,一般来说只需要到 Release 里找作者编译好的文件就行。但要注意,直接点 Release 会进入最新的一个 Release 页,如果这个 Release 不包括作者编译好的插件,可以回退几个 Release 版本找。获取到.dll文件以后,把它放在EnvRoot\\vs-plugins下即可(在 VapourSynth-R66 以前,这个路径是EnvRoot\\vapoursynth64\\plugins)。 - Python 脚本插件:这类插件其实又分为两种。
- 第一种是单独一个
.py文件,比如 fvsfunc。这种插件只需把仓库中的对应文件保存到本地,然后放在根目录下(或EnvRoot\\Lib\\site-packages下)即可。 - 第二种比较复杂,他们以 Python 模块的形式存在,比如 yvsfunc。这种插件需要首先识别出仓库中的哪个文件夹代表了这个模块本体(通常是与模块同名,且该文件夹下直接存在
__init__.py,比如上述例子中就是yvsfunc文件夹。把整个仓库下载下来,然后把对应文件夹放在根目录下(或EnvRoot\\Lib\\site-packages下)即可。- 有一些 Python 模块经常更新,比如 rksfunc,对于此类模块,推荐使用软链接的方式管理,这样使用 Git 客户端拉取更新之后,无需再手动复制替换环境中的模块。
- 最后一种最为简单,可以直接
pip install xxx安装
- 第一种是单独一个
- 将所有动态链接库插件都放置好之后,找到根目录下的
vsgenstubs.py(早期版本的等价文件是根目录下vsgenstubs(4)文件夹下的init.py),在根目录下打开命令行,运行python vsgenstubs.py。 - 安装 vsedit,打开
Edit->Settings->Paths,将根目录添加到VapourSynth library (VSScript) search paths中。我们需要用到 vsedit 安装目录下的 vsedit-previewer。 - 在 VS Code 中安装 Python 插件,打开任意
.vpy文件,将文件关联设置成 Python。设置 Python 解释器为根目录下的python.exe,此时 VS Code 中可以正常渲染 VapourSynth 插件了。如果你在后期添加了新的插件,可以重新运行步骤 1。 - 在 VS Code 中安装 Code Runner 插件,将 Run Code 快捷键绑定为 F5(这是 vsedit 的习惯,你也可以不这么操作),然后在插件设置中找到“Code-runner: Executor Map By Glob”,点击“在 settings.json 中编辑”,在弹出的配置中编辑:
"code-runner.executorMapByGlob": {
"*.vpy": "vsedit-previewer的路径 $fullFileName",
// 注意路径中的 \ 要替换为 \\,路径前后需要用双引号括起来,并且双引号前也要加一个 \,样例如下:
// "*.vpy": "\"C:\\Program Files\\VapourSynth Editor\\vsedit-previewer.exe\" $fullFileName",
}
Magic-Raws 的工具链对将 .py 文件赋予可执行的打开方式有刚性需求,而 Windows 对修改可执行的默认打开方式有非常繁琐的流程,我们的仓库里提供一个 py.bat,代替各路 python.exe,起到一个 launcher 的作用,只需要把系统的 .py 文件默认打开方式修改为 py.bat,在更新环境时修改 py.bat 中的 PYTHON_TO_USE 即可。具体来说:你需要先把 py.bat 存放到系统的某个不轻易修改的地方(为方便表述,我们假设它被放在 C:\green\py.bat),打开一个具有管理员权限的 cmd,运行:
assoc .py=pyfile
ftype pyfile="C:\green\py.bat" "%1" %*
然后找到任意一个 .py 文件(比如你可以下载本仓库中的 test-path.py)右键 -> 打开方式 -> 选择其它应用 -> 选择 py.bat -> 勾选“始终使用此应用打开 .py 文件” -> 确定。正常情况下你应该能观察到 .py 文件的图标变成空白文件图标。双击 test-path.py,如果你能看到正常的输出,那么环境配置就没有问题了。