Mac OS X 10.10 Ошибка Meld

У меня есть оба Python 2.7 и Python 3.4, установленные на моем MacBook, так как иногда они нужны.

Python 2.7 поставляется самой Apple. Python 3.4 установлен Mac OS X 64-разрядной/32-разрядной установкой в ​​ссылке https://www.python.org/downloads/release/python-343/

Вот как я установил Meld в Mac OS X 10.10:

  • Установить инструменты командной строки для разработки Apple;
  • Установить Homebrew;
  • homebrew install homebrew/x11/meld
  • При запуске 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

Этот файл отсутствует. Однако, если я хочу использовать Python 2.7 и Python 3.4 для Meld, что мне делать, чтобы заставить его работать?

Ответ 1

Это должно решить проблему: brew link --overwrite python

Ответ 2

Я использую Linux. Я понятия не имею об Apple и о том, что они делают. Но, судя по сообщениям об ошибках, кажется, что

  • bash запускает программу meld
  • Программа meld ссылается на программу python в someplace
  • someplace неверно в программе meld, вызывая сообщение об ошибке bash

Теперь вот как вы отлаживаете и решаете такие проблемы:

  • открыть терминал (черное окно, в котором вы можете вводить команды)
  • узнать, где установлена ​​программа python, введя which python в окно терминала.

    $ which python
    /usr/bin/python
    

    В моем случае мы видим, что python установлен в /usr/bin/python

  • Узнайте, где установлена ​​программа meld. В исходном вопросе это находится в /usr/local/bin/meld, как мы можем вывести из сообщения об ошибке в 4. Но мы можем снова попробовать эту команду и спросить, где система находит соединение: which meld:

    $ which meld
    /usr/bin/meld
    

    В моем случае это находится в /usr/bin/meld.

  • теперь вы открываете файл, указанный which meld на шаге 3. и создаете резервную копию
  • теперь вы открываете файл, который which meld сообщается на шаге 3. в выбранном редакторе и меняете первую строку, так что он начинается с #!, за которым следует путь программы python с шага 2. в моем case первая строка meld: #!/usr/bin/python. Сохраните изменения в файле и повторите попытку. Вероятно, вам понадобятся права доступа администратора, чтобы сохранить файл.
    • сначала запустите его в терминале, введя meld, поэтому легко прочитать сообщения об ошибках.
    • Если meld запущен в терминале, начните свой обычный путь от gui и надейтесь, что он тоже работает.

В исходном вопросе упоминались несколько версий 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.

Ответ 3

Настоятельно рекомендуется не использовать System Python для osx, а устанавливать отдельную версию Python (для получения списка причин см., например, эту страницу здесь).

Причина сводится к тому, что OSX зависит от собственной установки Python, с которой вы не должны вмешиваться, не имея возможности обновить Python или работать с некоторыми модулями.

Вы можете легко установить отдельную версию Python с помощью homebrew, выполнив:

brew install python

Это должно дать вам рабочую установку python 2.7 (brew install python3 для 3.x), которая находится в /usr/local/bin/python. Это (если я правильно понимаю ваши сообщения об ошибках) также место, которое ищет Мелд.

(Мне нравится this blogpost для получения дополнительной информации о том, как настроить Python на osx.)