Не могу запустить макрос Python в LibreOffice
Я пытаюсь научиться писать макросы для LibreOffice на Python. Я сделал простой макрос, вставил в ~/.config/libreoffice/4/user/Scripts/python/
и нашел его в Инструменты / Макросы / Упорядочить макросы /Python.../ Мои макросы. Пока все работает как положено, макрос виден.
Но когда я нажимаю на нее, кнопка Run остается серой. Я не могу запустить это. Кто-нибудь знает, в чем может быть причина?
Спасибо
РЕДАКТИРОВАТЬ: Файл исполняемый, я установил права на 777, чтобы быть уверенным. Код Python действителен.
EDIT2: я переустановил LibreOffice, и теперь он работает. Вероятно, было что-то не так с моей установкой. Файл скрипта в ~/.config/libreoffice/4/user/Scripts/python/
установить как исполняемые произведения. И примеры @ngulam работали еще до переустановки.
Спасибо за все советы, которые вы мне дали, и хорошего дня.
4 ответа
Макросы для OpenOffice/LibreOffice в Python не обязательно должны быть исполняемыми.
Расположение правильное, хотя вы можете создать подкаталог (например, для CALC или WRITER) и поместить его туда - иначе он будет виден во всех других компонентах (где он может не работать).
Вы перезапустили LibreOffice после копирования?
У меня была такая же или похожая проблема. Мой скрипт MyCalcHelloWorld.py с функцией MyCalcHelloWorld, находящейся в /home/tom/.config/libreoffice/4/user/Scripts/python/, создал библиотеку в левой панели диалогового окна «Выполнить макрос», но не имя сценария для запуска в правой панель.
Я попытался скопировать один из предустановленных общесистемных макрос-скриптов Python из /opt/libreoffice7.5/share/Scripts/python/ в /home/tom/.config/libreoffice/4/user/Scripts/python/, и он показал нормально.
В конце концов я понял, что в моем скрипте была синтаксическая ошибка (двойные кавычки в коде, скопированном с веб-страницы, были не простыми двойными кавычками, а символами UTF-8 для верхних и нижних двойных кавычек), и это было причиной скрипт не показывает.
Примечание: для LO 5.2 вы должны разместить здесь своих питонов.
/opt/libreoffice5.2/share/Scripts/python
.. или, что еще лучше, поместите там ссылку в папку, где вы можете редактировать без sudo, т.е. подать команду, как это..
cd /opt/libreoffice5.2/share/Scripts/python
sudo ln -s / home / rich / Источники /Pythons rje_pythons
где /home/rich/Sources/Pythons - ваша более удобная папка.
Если вы поместите свой код в функцию, названную как файл, и вернете что-то или None, это должно сработать. Пример: создайте внутри папки Scripts файл MakeSomethingPython.py, как показано ниже, как вы можете видеть, я назвал функцию MakeSomethingPython:
#import library or function you need
def MakeSomethingPython( ):
//code to make something
//
return