linuxBean14.04(134)Eclipse4.6とLibreOffice5.2のPythonマクロ

これも前回と同様にlinuxBean14.04(93)Eclipse4.5にPyDevをインストールの通りにします。まずEclipse4.6からLibreOffice5.2をオートメーションで動かしてみます。

前の関連記事:linuxBean14.04(133)Eclipse4.6(Neon)とPyDev5.4のインストール


LibreOfficeのマイマクロフォルダをリンクしたPyDevプロジェクトを作成する


~/.config/libreoffice/4/user/Scripts/python

LibreOffice5.2のマイマクロフォルダのパスはこのようになっています。

なければ自分で作っておかないといけません。

Eclipse4.6のメニューからFile→New→Other。

PyDevフォルダ以下にあるPyDev Projectを選択してNext。

インタープリターを設定しないと次に進めませんのでまずその設定をします。


インタープリターにはLibreOffice5.2のバンドルPythonに設定をします。

Please configure an interpreter before proceedingをクリック。


Auto-ConfigではQuickもAdvancedもLibreOfficeのバンドルPythonは検知できませんでしたので、Manual Configを選択します。


Newをクリックして出てきたダイアログで/opt/libreoffice5.2/program/pythonを選択します。


System Libsに追加するフォルダパス一覧が提示されますのでそのままOKをクリック。

これで設定完了です。

LibreOffice5.2のバンドルPythonは3.5とわかりました。


Project nameはLO5.2(上記画像と異なります)、Grammar Versionは3.0-3.5にし、Create links to existing sources (selected them on the next page)を選択しました。

Next。


Add external source folderをクリックして以下のパスを直接入力します。

~/.config/libreoffice/4/user/Scripts/python

LibreOfficeのマイマクロフォルダは隠し属性になっているのでダイアログからは選択できませんでした。
(Ctrl+hで隠しフォルダが表示されました。)

Finish。

これでLibreOfficeのマイマクロフォルダとリンクしたPyDevプロジェクトの完成です、、、


と思ったら、許可がありません、というエラーがでてきましたが、もう一度作りなおすとできました。
(2017.3.23追記このときに何かファイルが壊れてしまったのかもしれませんinuxBean14.04(154)Eclipseのプラグインが全くインストールできなくなる参照。)
(2017.3.24追記。このエラーの原因はrootでPyDevをインストールしたときにworkspaceをrootのものでないのにしていたことでした。.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resourcesがログインユーザーではなくrootの所有になっていてログインユーザーのパーミッションがなくなってしまっています。プラグインがインストールできなくなった原因ではありませんでした。)


PyDevパースペクティブと関連付けるのか問われますので、Remember my decisionにチェックをつけてYesにしました。


Window→Show View→PyDev Package ExplorerでプロジェクトをみるとリンクしたLibreOfficeのマイマクロフォルダの中身が表示されていることがわかります。

オートメーションでEclipseからPythonでLibreOfficeを動かす


LibreOffice(4)PyCharmからLibreOfficeを動かす(オートメーション)で 作成したunopy.pyとtest.pyを用意します。

上図のようにunopy.pyは~/.config/libreoffice/4/user/Scripts/pythonフォルダ、text.pyはそのサブフォルダのtestフォルダに入っています。

LibreOfficeをソケット通信可能な状態で起動したあとWriterを起動してtest.pyをEclipiseから実行してみます。


PyDevでtext.pyを開いたところこのようなダイアログがでてきました。

PythonではJavaのようにビルドは不要なので、全部チェックがつけたままでOKします。


test.pyの5行目でエラーがでています。

Unresolved import: unopy、ということですが、マイマクロフォルダはPyDevプロジェクトのソースフォルダとしてPYTHONPATHが通っているのでそのままRunすればWriterのドキュメントにHeelo World!とちゃんと出力されました。

無用なUnresolved import表示を抑える方法


実行には問題ないので、無用なエラー表示を抑えたいと思いました。


unopy.pyの方も同様にエラー表示がでたままでした。

unopy.pyについてはPyCharmでも同様のエラーがでたままでした。

unopy.pyについては一度作ってしまえばもう見ることがないのでよいのですが、test.pyでのエラー表示はなんとかしたいものです、、、

と、思ってEclipseを再起動したらunopy.pyの4行目のエラー表示以外は表示されなくなっていました。

なので再起動しなくてもFile→Refreshとすればここまでは解決していたかもしれません。
from com.sun.star.script.provider import XScriptContext
このXscriptContentについてのエラー表示の抑制は難しそうです。

com.sun.star.script.providerはPythonで書かれているわけではないのでPYTHONPATHを通せばよいということにはなりません。

Eclipse + PyDev 環境で Unresolved import Error の解決方法 - datalove’s diary

直接エラーを抑制する方法が紹介されていました。

Quick Fixを使う

エラーを抑制したいところをエディタで選択して右クリック→Quick Fix。

UnoresolvedImportをダブルクリックします。


@UnresolvedImportというコメントがついてエラー表示が消えました。

でも行番号の背景に色がつきました。

@UnresolvedImportを消せばエラー表示が復活しますが行番号の色はRefreshでも消えずEcllipseの再起動で消えました。

EclipseのメニューからWindow→Preferences、PyDev→Editor→Code Analysis、ImportsでImport not foundをIgnoreにすればよさそうですが、すべてのインポートエラーを消したいわけでないのでこの方法はいまいちです。

参考にしたサイト


Eclipse + PyDev 環境で Unresolved import Error の解決方法 - datalove’s diary
とりあえずUnoresolved import Error表示を消す方法。

次の関連記事:linuxBean14.04(135)LibreOffice5.2のPythonマクロをリモートデバッグする

PR

0 件のコメント:

コメントを投稿