缘起

在linux下,最早用的比较工具是vim,这是作为一个vimer的自尊(其实没有关系吧)。终于有一天,在比较同一个项目的两个版本的时候,比较了两三个文件后,看着vim里面花花绿绿的颜色,实在是受不了了。而且比较的结果也让人迷惑。两边明明是一样的,却显示为不一样。我决定另寻出路。

在git中,推荐的比较工具是meld,那就这个好了,也不管是不是因为是不是按照字母序排的。

一用之下,效果甚好。颜色整体偏浅,恰到好处。而且缺少,增加用一个插入的图形化表示,很直观形象,一看就明白了。还有比较文件夹的功能。实在是不能更好了。

windows

自然而然的想在windows下能不能跑meld。以前用的比较,一直是total command,但是用了meld之后,感觉再也回不去了。windows下也有比较工具,网上评价最高的是beyond compare。遗憾的是,是收费的。虽然网上有注册码,而且能用,但是总不如把meld装在windows下舒服。上网一查,还真有在windows下的安装包,把python和gtk整体打包了。

一安装,运行meld.exe,没反应。就知道,没有那么便宜的事情。一条崎岖的道路,才刚刚开始而已。

meld.exe只是一个启动器而已,最后的任务是交给bin目录下的meld,这是一个python脚本。同时还有一个meldc.exe是一个命令行的启动器。为了看是出什么问题了,在bin目录下启动命令行,运行python meld。显示是,import pygtk出错,后面还有一句是无法找到相应的dll。

把这个卸载了,重新安装meld,这次不安装python和gtk,而用本来就有的python,并到网上下载gtk的all-in-one安装包。然后在环境变量中添加PYTHON_HOME环境变量。再次运行meld,还是一样的结果。

回过头来,研究错误信息,不能import。于是我打开python,试了一下import pygtk,可以。这就奇怪了。无奈之下,只好修改源代码,在import pygtk利用pdb加了断点。一运行,发现是import gtk时候出错。两次import,出错报的信息是一样的。在解释器下运行 import gtk,果然报错。根据堆栈信息是在import _gtk时出错。而_gtk是一个pyd文件。到这里卡住了。

继续上网搜索。

这时候注意到了dll错误。一般导入失败,不会有这个提示,应该是pyd中引用了一些dll,而找不到这些dll才会报错。那怎么样才能找到究竟是在哪一个环节上出错了呢?

dependence walker

这个工具可以找到一个文件的dll依赖。我们在这个工具中打开_gtk.pyd。这时候,报错,缺少了一些dll。一部分是gtk运行时库的。一部分是一些很奇怪的东西:MSVCR90.DLL IESHIMS.DLL MOBSYNC.DLL WER.DLL。第一个是比较熟悉的,之前也都有遇到过,在电脑中也可以找到,其他几个没见过。但是,作为一个all-in-one的安装包难道不应该把这些处理好吗?只好自己上网找,然后扔进_gtk.pyd的目录。然后扔一个进去,又出来一个依赖。如此重复四五次,总算是不报错了。但是还是启动不起来。果然,不能这样子一个一个来的吧。

放弃

已经过去了4个小时了,meld不装也可以的嘛。盗版就盗版了。进入清理阶段。把meld卸掉,然后把pygtk卸掉。pygtk怎么卸?直接删文件吗?感觉散布到好多地方,删不干净啊。这连卸载也要这么麻烦吗?

然后偶然的发现,重新运行安装程序,会提示是修复还是移除(-_-!)。

ps:在写文章的时候,不甘心,又跑去重试。不用all-in-one,手动一个一个安装。结果更糟糕了。想想在linux下,一句sudo apt-get install 就搞定一切了。

失败经历--在windows下安装meld的更多相关文章

  1. [INS-30131] 执行安装程序验证所需的初始设置失败问题解决,windows下oracle安装步骤

    [INS-30131] 执行安装程序验证所需的初始设置失败问题解决,windows下oracle安装步骤 配置: 系统:windows10 数据库:Oracle Database 12c 第 1 版 ...

  2. windows下安装ruby和 rails的痛苦经历

    准备安装ruby on rails,在网上搜了下,步骤都类似,但实际安装过程中却碰到很多问题.下面详细说下: 说明下,文章是按照我尝试的过程描述的.但最终是靠 运行 railsinstaller一键式 ...

  3. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  4. Composer - windows下安装方法

    在windows下安装的方法 方法一:使用安装程序 这是将 Composer 安装在你机器上的最简单的方法. 下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ...

  5. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  6. windows下安装mysql遇到的问题

    windows下安装mysql5.6.41步骤:http://www.cnblogs.com/sjy18039225956/p/9203052.html 系统错误2详见MySQL安装过程net sta ...

  7. windows下安装和配置redis

    1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...

  8. Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) - Enterprise Edition

    Windows下安装Oracle Database 12c Release 1(12.1.0.2.0) 最近因需要在Oracle 数据库上建立ODI的资料档案库,需要安装Oracle Database ...

  9. windows下安装Qt

    1.Linux下安装Qt与MySQL相对来说比较容易,在这里我就不多加介绍. 接下来主要介绍windows下安装Qt与MySQL. 2.在windows,我安装QtCreator, 使用的是qt-wi ...

随机推荐

  1. ASP.NET入门(1) - 建立和开发ASP.NET 5 项目

    原文转载自:http://www.cnblogs.com/zergcom/p/4493358.html 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以我们首先需要下 ...

  2. oneThink 数据库连接失败,总提示密码不对的解决办法

    oneThink的数据库配置文件是\Application\Common\Conf\config.php,按理来说,在这里修改数据库配置应该就可以重新连接,可是不管我怎么修改密码总是和我设置的不一致, ...

  3. org.springframework.dao.InvalidDataAccessApiUsageException:The given object has a null identifi的解决方案

    异常信息: org.springframework.dao.InvalidDataAccessApiUsageException: The given object has a null identi ...

  4. DOM 1

    首先getAttribute  setAttribute只能被元素节点对象调用.(属性节点和文本节点调用不了) 我们可以通过一下三种方式得到元素: document.getElementById(); ...

  5. 【ASP.NET基础】简单企业产品展示网站--产品编辑CRUD

    摘要:本文记录创建一个小的.简单的产品网站的步骤. 一,搭建一个简单的产品展示网站,熟悉以下知识点:NVelocity模板引擎.Ajax无刷新页面请求,文件上传,Row_Number实现分页,ckEd ...

  6. 【Ionic】---App名字和图标修改+启动画修改(SplashScreen)

    APP名字 1 修改项目目录下config.xml--name标签 END APP图标和启动画 1 在项目的根目录下创建resources文件夹 在文件夹中都放入 icon.png(应用图标,最小19 ...

  7. Android-短信验证

    一.mob.com移动开发者服务平台(ShareSDK)的认识 该平台主要是致力于解决移动开发者的实际需求,同时也致力于一些第三方平台的框架支持,那么这样我们可以更方便的将一些功能集成到我们的App中 ...

  8. C# 序列化xml

    把一个类序列化成xml,显示在txtarea,然后在获取txtarea的值进行反序列化成类,因为一个字段的值是url形式的,url里面有这个符号:&,所以反序列化的时候报错了,查了好久才发现是 ...

  9. [转]oracle 实现插入自增列

    本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...

  10. 简单的json传送数据

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...