Mac OS X 10.10 Meld 错误

10

我在我的 MacBook 上安装了 Python 2.7 和 Python 3.4,因为有时候需要使用它们两个。

Python 2.7 是由苹果自带的。Python 3.4 则是通过链接中的 Mac OS X 64 位/32 位安装程序安装的 https://www.python.org/downloads/release/python-343/

以下是我在 Mac OS X 10.10 上安装 Meld 的步骤:

  1. 安装苹果开发命令行工具;
  2. 安装Homebrew;
  3. homebrew install homebrew/x11/meld
  4. 当启动meld时,它会显示:

    **bash: /usr/local/bin/meld: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory**
    

根据我的研究,一些人建议修改/usr/local/bin/pip中的第一行,即:

#!/usr/local/opt/python/bin/python2.7

这个文件已经丢失了。但是,如果我想要在Meld中同时使用Python 2.7和Python 3.4,我应该怎么做才能使它正常工作呢?


一个临时的解决方法是运行 python /usr/local/bin/meld,对于一个永久性的解决方案 - 你能否更新你的问题并添加你是如何安装Python的? - Burhan Khalid
1
python /usr/local/bin/meld 回溯(Traceback)(最近的调用最先显示): 文件 "/usr/local/bin/meld",行 73,在 <module> 中: import meld.conf 导入错误:没有名为 meld.conf 的模块。 - day
为什么你需要同时运行meld?为什么2.7版本对你无效?一个BASH别名是否足够?如果不行,那~/bin目录下的包装脚本呢? - Nick
3个回答

5
这应该会解决问题:brew link --overwrite python

0

强烈建议不要使用OSX上的系统Python,而是安装一个单独的Python版本(有关原因列表,请参见此页面here)。

原因归结为OSX依赖于自己的Python安装,您不应该篡改它,否则将无法更新Python或使用某些模块。

您可以通过运行以下命令轻松安装homebrew的单独版本Python:

brew install python

这应该为您提供一个工作的Python 2.7安装(对于3.x,请使用brew install python3),它位于/usr/local/bin/python。这也是(如果我正确理解您的错误消息)Meld正在寻找它的地方。

(我喜欢this博客文章,以获取有关如何在OSX上设置Python的更多信息。)


0

我使用Linux。我对苹果和他们所做的特殊事情一无所知。但从给出的错误消息来看,似乎是这样的:

  1. bash启动了meld程序
  2. meld程序引用了某个地方的Python程序
  3. 某个地方meld程序中有误,导致bash错误消息

现在,以下是如何调试和解决此类问题的方法:

  1. 打开终端(黑色窗口,您可以在其中输入命令)
  2. 通过在终端窗口中输入which python,找出Python程序的安装位置。

    $ which python
    /usr/bin/python
    

    在我的情况下,我们可以看到Python安装在/usr/bin/python中。

  3. 找出meld程序的安装位置。在原始问题中,这在/usr/local/bin/meld中,正如我们可以从第4步中的错误消息推断出来的那样。但是我们可以再次尝试which命令,并询问系统在哪里找到meld:which meld

    $ which meld
    /usr/bin/meld
    

    在我的情况下,这在/usr/bin/meld中。

  4. 现在,您打开步骤3中which meld报告的文件,并备份它
  5. 现在,您使用所选编辑器打开步骤3中which meld报告的文件,并更改第一行,使其以#!开头,后跟步骤2中Python程序的路径。在我的情况下,meld的第一行是:#!/usr/bin/python。将更改保存到文件中,并重试启动meld。您可能需要一些管理员访问权限才能保存该文件。
    1. 首先在终端中输入meld,以便更容易地阅读错误消息。
    2. 如果meld在终端中启动,请从GUI中以通常的方式启动meld,并希望它也可以正常工作

原问题提到了几个Python版本。我也安装了几个版本,可以向系统询问不同的版本:

$ which python2
/usr/bin/python2
$ which python2.7
/usr/bin/python2.7
$ which python3
/usr/bin/python3
$ which python3.4
/usr/bin/python3.4

如果您安装了多个版本:请在从第3步开始编辑文件时逐个尝试。

2
“which” 命令经常不是一个好的选择。在OSX上,它会运行一个外部程序,不知道您的shell函数、别名等内容。更好的选择是使用 type 命令,这是一个shell内置命令,并且已被POSIX正式标准化。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接