Службе macOS python PDF отказано в доступе в macOS Catalina

#python #macos #pdf

#python #macos #PDF

Вопрос:

Уже много лет я использую скрипт на Python, чтобы добавить «виртуальный принтер» в свой диалог печати macOS и печатать на канцелярских принадлежностях PDF из любого приложения.

Скрипт помещается внутрь ~/Library/PDF Services , берется sys.argv[3] в качестве входного файла, объединяет входной файл с заданным файлом PDF и сохраняет его в ~/ Downloads .

Я был счастлив, пока не обновился до macOS Catalina и всегда получал это сообщение с консоли:

Sandbox: Python(30225) System Policy: deny(1) file-read-data /Users/me/Documents/stationery.pdf

Похоже, что из-за новых разрешений в macOS Catalina скрипт больше не может получить доступ к файлу stationery. Однако Python имеет полный доступ к жесткому диску.

Если я запускаю тот же скрипт с терминала, все работает нормально.

Как я могу предоставить скрипту доступ к требуемому документу ( /Users/me/Documents/stationery.pdf ) при выполнении из диалога печати?

Ответ №1:

Редактировать:

Похоже, эта проблема была исправлена в Monterey: скрипты python теперь будут корректно запускаться как службы PDF.

(Конечно, они удаляют python, поэтому вам придется установить свой собственный. Колебания и карусели.)