Компиляция латекса Textmate: pb с версией Python после обновления macOS Monterey 12.3

Я использую textmate для создания файла PDF в латексе. После обновления macOS Monterey версии 12.3 минимальная версия python (/usr/bin/python) исчезла: компиляция теперь не работает. Я пытаюсь изменить файлы textmate /usr/bin/python на /usr/bin/python3 (у меня есть только эта папка 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, я не думаю, что это проблема с латексом.

Многие устаревшие приложения на основе Python не будут работать с 3... см. stackoverflow.com/a/71513250/786389, чтобы вернуть python2

Josh Hibschman 17.03.2022 14:51

Необходимость установить pyobjc была той информацией, которая мне действительно была нужна. Спасибо!

Michel Charpentier 20.03.2022 20:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
2
235
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я только что нашел следующую страницу: 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/

Ответ принят как подходящий

LaTeX-Bundle TextMate не был обновлен вовремя для выпуска 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. Измените «python» на «python3» в заголовке всех файлов .py (configure.py, btexdoc.py, texmate.py, texparser.py)

Большое спасибо Феликсу Брандту, мой texmate теперь отлично работает, и я очень счастлив :-). Я не думаю, что без тебя я решу свою проблему. это очень здорово.

Julien Geandrot 18.03.2022 18:32

Другие вопросы по теме