.../bin/meld
脚本主要用于参考。你应该设置
git config mergetool.meld.path "C:/Program Files (x86)/Meld/Meld.exe"
如果没有特殊需求,你不需要使用 Progra~2
的命名方式。
我遇到的唯一问题是,它没有正确识别安装在 C:/Program Files (x86)/Meld/lib
中的依赖扩展。你需要将 C:/Program Files (x86)/Meld/lib
添加到你的 PATH
环境变量中,可以使用 SET PATH=C:/Program Files (x86)/Meld/lib;%PATH%
或通过控制面板/开始菜单中的“编辑帐户的环境变量”来实现。
另一种方法
如果你在文本编辑器中打开 C:\Program Files (x86)\Meld\bin\meld
,你会看到它是一个 shell 脚本,旨在在 python3
中运行(很可能从 C:\Program Files\Git\bin\sh.exe
调用)。
meld
的第一行是:
如果使用Meld.exe
,这个问题就不会出现,因为它不会通过Python解释器执行脚本。
你的机器上很可能没有安装Python解释器在那个位置。相反,你可以将shebang行替换为指向现有解释器的路径。例如,在我的机器上,meld
的开头是:
#!C:/Users/MadPhysicist/AppData/Local/Continuum/anaconda3/python.exe
这仍然不足以让脚本找到meld
包和所有已安装的GTK、cairo等DLL文件,因此您需要调整Python和系统路径。在import meld # noqua: E402
之前(第78行),插入以下内容:
os.environ['PATH'] = os.pathsep.join((melddir, os.path.join(melddir, 'lib'), os.environ['PATH']))
sys.path[0:0] = [os.path.join(melddir, 'lib/python3.7/site-packages')]
我曾尝试多次使用第一行命令来正确地安装 Cairo、GTK 等组件,但都未能成功为 meld
进行设置。但你可以跳过第一行,直接使用 conda 或 pip 安装这些软件包。不过你仍需要将 meld 包插入到 sys.path
中。
请注意,meld
编译成 32 位版本,如安装文件夹中的 x86
所示。如果你想要使用包含的 DLL 文件运行它,就只能使用 32 位 Python 解释器,并且可能还需要进行额外的安装。如果你的环境已经包含了所有必要的软件包,则不需要使用 32 位解释器。