Textmate latex 编译:pb with python macOS 更新 Monterey 12.3 后的版本

Textmate latex compilation : pb with python version after macOS update Monterey 12.3

我使用 textmate 在 latex 中制作 pdf 文件。 macOS Monterey 12.3 版本更新后,python (/usr/bin/python) 的最小版本已经消失:现在无法编译。 我尝试通过 /usr/bin/python3 更改 textmate 的文件 /usr/bin/python(我只有这个 python 文件夹),但这总是行不通。

错误说我要更改编译命令,它是这样的:

 #!/usr/bin/env ruby18
# coding: utf-8

require ENV["TM_SUPPORT_PATH"] + "/lib/tm/process"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/htmloutput"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document"

# To enable the typesetting of unsaved documents, you must change the “Save” setting of
# this command to “Current File” and add the variable TM_LATEX_AUTOSAVE to TextMate's
# Shell Variables preferences. Be warned that your document must be encoded as UTF-8 if
# you exercise this option — becauseTextMate.save_current_document cannot know the file 
# encoding you prefer.

TextMate.save_current_document unless ENV["TM_LATEX_AUTOSAVE"].nil?

texmate = ENV["TM_BUNDLE_SUPPORT"] + "/bin/texmate.py"
engine_version = TextMate::Process.run(texmate, "version")
TextMate::HTMLOutput.show(:title => "Typesetting “#{ENV["TM_DISPLAYNAME"] || File.basename(ENV["TM_FILEPATH"])}”…", :sub_title => engine_version) do |io|
  TextMate::Process.run(texmate, 'latex', :interactive_input => false) do |line|
    io << line
  end
end
::Process.exit($?.exitstatus || 0) # exitstatus is nil if our process is prematurely terminated (SIGINT)

非常感谢您的帮助。 PS : 用texshop编译,我觉得不是latex的问题

我刚找到以下页面: https://www.heise.de/news/macOS-12-3-Apple-wirft-Python-raus-6341999.html 这告诉我 Apple 不再支持 Python(以及其他一些脚本语言,例如 Perl)。他们支持的最后一个版本是 Python 2.7。 开发人员应自行安装(并维护)Python 3。 Python 页面告诉了完全相同的事情:

https://docs.python-guide.org/starting/install3/osx/

TextMate 的 LaTeX-Bundle 没有及时更新 MacOS 12.3 的发布。您可以按如下方式修复它:

  1. 下载并安装 Python 3 (https://www.python.org/downloads/)
  2. /usr/bin/python3 -m pip install pyobjc --user
  3. cd ~/Library/Application\Support/TextMate/Managed/Bundles/LaTeX.tmbundle/Support/bin
  4. 将所有 .py 文件的 header 中的“python”更改为“python3”(configure.py、btexdoc.py、texmate.py, texparser.py)