Plo*_*log 7 python git meld git-merge python-3.x
我试过将 meld 设置为我的合并工具以与 git 一起使用:
git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld
Run Code Online (Sandbox Code Playgroud)
如对以下问题的回答所述:
我曾经在我的旧工作机器上运行过这个,但现在在我安装了 Python3 而不是 2.7 的新机器上,每当我尝试 git mergetool 时,我都会收到以下错误:
C:/Program Files/Git/mingw64/libexec/git-core/mergetools/meld: c:/Progra~2/Meld/bin/meld: C:/msys64/MINGW32/bin/python3.exe: 错误解释器: 否这样的文件或目录
任何想法我需要采取哪些额外步骤才能使其与 Python3 一起使用?
编辑:我也尝试过直接指向 Meld.exe 但这会导致以下崩溃:
该.../bin/meld
脚本主要用于参考。你应该设置
git config mergetool.meld.path "C:/Program Files (x86)/Meld/Meld.exe"
Run Code Online (Sandbox Code Playgroud)
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
写着:
#!C:/msys64/MINGW32/bin/python3.exe
Run Code Online (Sandbox Code Playgroud)
使用时不会弹出这个问题,Meld.exe
因为它没有通过python解释器使用脚本。
python 解释器不太可能安装在你机器上的那个位置。相反,您可以替换 shebang 行以指向现有的解释器。例如,在我的机器上,meld
以:
#!C:/Users/MadPhysicist/AppData/Local/Continuum/anaconda3/python.exe
Run Code Online (Sandbox Code Playgroud)
这仍然不足以让脚本找到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')]
Run Code Online (Sandbox Code Playgroud)
我无法在第一行中正确设置 Cairo、GTK 等meld
。但是,您可以跳过第一行,直接使用 conda 或 pip 安装软件包。您仍然需要将 meld 包插入到sys.path
.
请记住,它meld
是以 32 位编译的,如x86
安装文件夹中的 所示。如果您使用包含的 DLL,则只能使用 32 位 python 解释器运行它,这可能需要额外安装。如果您的环境已经包含所有必需的包,则不需要 32 位解释器。
归档时间: |
|
查看次数: |
1925 次 |
最近记录: |