Не могу запустить макрос 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
Другие вопросы по тегам