1

Windows 7、Python 3.6、および LibreOffice 5.4.2.2 (この順序でインストール) を実行しています。

目標: LibreOffice 以外の Python 3.6 に pyuno をインストールして使用します (スタンドアロン IDE、彼の場合: PyCharm 2017.2.3 Community Edition)。Pandas を使用して Excel で実行できるのと同じように、Calc シートで動作するスクリプトを実行できるようにしたいと考えています。

問題: 最初に「import uno」を指定してスクリプトを実行しようとすると、要素が見つからないというエラーが発生します。

  File "C:\Users\Adam\AppData\Local\Programs\Python\Python36-32\lib\site-packages\uno\__init__.py", line 4, in <module>
    from base import Element, Css, Payload, UnoBaseFeature, UnoBaseField
ImportError: cannot import name 'Element'

pip も pip3.6 も使用せずに「Element」をインストールできませんでした。pip3.6 install uno で pyuno をインストールしました。

python3-uno を使用してインストールしてみました:

C:\Users\Adam\AppData\Local\Programs\Python\Python36-32\Scripts>pip3.6 install python3-uno
Collecting python3-uno
  Could not find a version that satisfies the requirement python3-uno (from versions: )
No matching distribution found for python3-uno

同じ結果が pip3.6 (および pip) install python-uno の場合です。

私は推測しています(または他のスレッドで読んでいます)が、init__.pyファイルがPycharm/python 3.6とPython 3.5の間で競合している可能性があります。これはLibre Officeに付属していますが、どうすればよいかわかりません。

このことを機能させる方法、または不足している要素を入手する場所を知っている場合は、サポートをいただければ幸いです。

4

3 に答える 3

0

私は似たようなことをしようとしています。

pip を使用して uno をダウンロードした場合、探しているものではない可能性があります。( https://pypi.org/project/pyoo/「前提条件」を参照)。

また、私が読んだ多くの場所では、python のシステム バージョンは LibreOffice または Openoffice python のバージョンと一致する必要があると明示的に述べています。

を使用して PYTHONPATH を変更して簡単に実験しました

''' インポート システム

sys.append('LibreOffice 5 フォルダー下の pyuno へのパス')

ピュノ「」をインポート

しかし、コマンドウィンドウがフリーズするだけでした。URE_BOOTSTRAP をリセットしようとしなかったので、うまくいくかもしれません。

それ以外の場合、互換性のないバージョンの python を使用して OpenOffice または LibreOffice を操作するには、COM (Component Object Model) メソッド/ツールを使用する必要があると多くの人が言っていますが、私はこれについて経験がなく、ドキュメントも優れていません。私はこの本とプレゼンテーションを見つけましたが、まだ完了していない多くの調査が含まれています。

本: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwje0u7QuMLbAhXLFzQIHcexAdUQFgg8MAE&url=http%3A%2F%2Fwww.datatime.org%2Fe%2Fupload% 2Fs1%2Ffck%2Ffile%2F2017%2F01%2F11%2F1008283040.pdf&usg=AOvVaw2Q5uuLBlc7Adlami3-D1xa

プレゼンテーション: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0ahUKEwihor7PucLbAhVjNn0KHbb7AyQQFgg3MAM&url=http%3A%2F%2Fftp.ntua.gr%2Fmirror%2Fpython% 2Fwindows%2Fwin32com%2FCOMTutorial.ppt&usg=AOvVaw0VkCgHsto0LR1q5o1EygMp

ezodf または pyexcel-ods を使用してデータを読み取り、そこからデータに対して他の操作を実行してみます。システムpythonからUNOまたはpyunoにアクセスする別の方法がない場合、おそらくそのようなものもうまくいくでしょう。

それがうまくいかない場合は、URE_BOOTSTRAP をリセットしてみます

頑張ってください!

于 2018-06-07T21:08:30.780 に答える