2016-07-25 5 views
0

私は答えを探しましたが、これまでのところ何の助けもありませんでした。私はodtファイルを作成してテキストで埋めたいという使い方があります。また、ファイルを作成したときにそのファイルを表示する必要があります。 - 作成され、エラーなしsample.odtを保存python3 unotools connection error接続に失敗しました

unotools.errors.ConnectionError: failed to connect: ('socket,host=localhost,port=8100', {}) 

unotoolsサンプルは、端末からうまく働いた:私は、Pythonに3.4.3 unotools 0.3.3 LinuxMint 17.1のLibreOffice 4.2.8.2

問題を使用しています。私のドラフトコード:

def writer_report(self): 
    subprocess.Popen(["soffice", "--accept='socket,host=localhost,port=8100;urp;StarOffice.Service'"]) 
    time.sleep(5) # using this to give time for LibreOffice to open - temporary 
    context = connect(Socket('localhost', '8100')) 
    writer = Writer(context) 
    writer.set_string_to_end('world\n') 
    writer.set_string_to_start('hello\n') 
    writer.store_to_url('output.odt','FilterName','writer8') 
    writer.close(True) 

LibreOfficeアプリケーションが開いたままになります。しかし、接続が失われているようです。
誰かが私に助けてくれることを願っています。ありがとうございます。

答えて

0

私はこのようなコードをお勧めしません:

subprocess.Popen(...) 
time.sleep(...) 

sofficeを開始してからPythonスクリプトを呼び出すためにシェルスクリプトを使用することをお勧めします。

サブプロセスでsofficeを実行すると判断された場合は、スリープ時間を15秒以上にすることをお勧めします。

https://forum.openoffice.org/en/forum/viewtopic.php?t=1014を参照してください。

+0

アドバイスをいただきありがとうございます。私は時間を伸ばそうとしましたが、まだ喜びはありません。 –

0

アドバイスありがとうございます。私はこの実行をサブプロセスにしたかった。私は時間を伸ばそうとしましたが、まだ喜びはありません。
私は今Python odfpy 1.3.3パッケージを使用しています.1日か2日の使用を開始した後、私はすでにもっと成功しています。

関連する問題