TextMate 1.5.9似乎使用Python 2.6.1。你如何配置它来使用3.1代替?我已经安装了3.1软件包,我可以使用IDLE进行交互式会话,但我现在想使用TextMate。我已经看过指示你定义项目变量的帖子(TM_PYTHON:interpreter path)。我尝试了这个,但是当我使用Cmd + r在Textmate中运行脚本时,我仍然将Python 2.6.1视为版本号(顶部/右侧)。甚至终端也使用2.7!
帮助!
答案 0 :(得分:1)
我假设你指的是this post。它应该工作,但要确保您使用正确的路径到您安装的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
)然后选择Python包的Run Script
命令,我看到以下命令片段:
#!/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 = "&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
捆绑包可让您轻松按照here所述保持捆绑包的最新状态。
答案 1 :(得分:1)
#! /usr/bin/python
从你的剧本中删除这个正常的她然后运行它然后你会在textmates窗口显示版本3。默认的shebang会覆盖变量并将您发送回osx默认版本2.6.1。这有点奇怪......