Как мне использовать Python 3.1.2 в Textmate?

1
задан Stormbytes 27 August 2010 в 06:19
поделиться

1 ответ

Полагаю, вы имеете в виду этот пост. Это должно работать, но убедитесь, что вы используете правильный путь к установленному Python 3.1. Сверьтесь с:

$ which python3
/usr/local/bin/python3

Если вы использовали программу установки python.org 3.1, она должна быть доступна по адресу /usr/local/bin/python3. Другие методы могут различаться, например, MacPorts python3.1 обычно находится по адресу /opt/local/bin/python3.

ОБНОВЛЕНИЕ: Поскольку вы указываете, что это все еще не работает для вас, я предполагаю, что мы используем разные версии пакета TextMate Python. Используя TextMate Bundle Editor (пункт меню Bundles -> Bundle Editor -> Show Bundle Editor), затем выбрав команду Run Script пакета Python, я вижу следующий фрагмент команды:

#!/usr/bin/env ruby
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/executor"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document"

TextMate.save_current_document
TextMate::Executor.make_project_master_current_document

ENV["PYTHONPATH"] = ENV["TM_BUNDLE_SUPPORT"] + (ENV.has_key?("PYTHONPATH") ? ":" + ENV["PYTHONPATH"] : "")

is_test_script = ENV["TM_FILEPATH"] =~ /(?:\b|_)(?:test)(?:\b|_)/ or
                 File.read(ENV["TM_FILEPATH"]) =~ /\bimport\b.+(?:unittest)/

TextMate::Executor.run(ENV["TM_PYTHON"] || "python", "-u", ENV["TM_FILEPATH"]) do |str, type|
  if is_test_script and type == :err
    if str =~ /\A[\.F]*\Z/
      str.gsub!(/(\.|F)/, "<span class=\"test ok\">\\1</span>")
      str + "<br/>\n"
    elsif str =~ /\A(FAILED.*)\Z/
      "<div class=\"test fail\">#{htmlize $1}</div>\n"
    elsif str =~ /\A(OK.*)\Z/
      "<div class=\"test ok\">#{htmlize $1}</div>\n"
    elsif str =~ /^(\s+)File "(.+)", line (\d+), in (.*)/
      indent = $1
      file   = $2
      line   = $3
      method = $4
      indent += " " if file.sub!(/^\"(.*)\"/,"\1")
      url = "&amp;url=file://" + e_url(file)
      display_name = ENV["TM_DISPLAYNAME"]
      "#{htmlize(indent)}<a class=\"near\" href=\"txmt://open?line=#{line + url}\">" +
        (method ? "method #{CGI::escapeHTML method}" : "<em>at top level</em>") +
        "</a> in <strong>#{CGI::escapeHTML display_name}</strong> at line #{line}<br/>\n"
    end
  end
end

Проверьте и посмотрите, есть ли у вас то же самое. Если нет, вам следует подумать об обновлении TextMate и/или пакета. Пакет GetBundle упрощает обновление пакетов, как описано здесь.

1
ответ дан 2 September 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: