3

Django サーバー内からさまざまなドキュメント形式 (doc、wordperfect、html など) を PDF に変換する方法として PyUNO を使用しようとしています。仕事に行くのにかなりの時間を費やしていimport unoます。import pyunoのメッセージで、 を実行すると失敗するようですImportError: DLL Load Failed: The specified module could not be found

これを機能させる唯一の方法は、OpenOffice に付属の Python 2.6 を使用することですが、実際には、他の 2.6 インストールを使用したいと考えています。PyUNO のドキュメントはすべて Python 2.2 用であり、古くなっていると言われています。

次のファイルの一部 (またはすべて) を OpenOffice ディレクトリから site-packages ディレクトリ (またはそのサブディレクトリ) にコピーする必要があると思います。

pythonloader.py
pythonloader.uno.ull
pythonloader.uno.ini
pythonscript.py
pyuno.pyd

これを機能させることに成功した人はいますか?

これはWindows上にあります。

4

3 に答える 3

2

単純な変換の場合、車輪の再発明をする必要はありません。unoconvを見てください:http://dag.wieers.com/home-made/unoconv/

「Importuno」は、PythonインタープリターがOpenOfficeにバンドルされている場合、またはパッケージャーがすでに多くの作業を行っている一部のLinuxシステムで自動的に機能します。

代替案1:Win32システムに他のPythonをインストールする場合は、3つの環境変数をインポートし、Pythonpathに1つの項目を追加する必要があります。詳細なチュートリアルはhttp://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36370&p=166783にあります。

OOがインストールされたPythonから取得し、Pythonの他のインストールに追加する必要がある3つの環境変数は、次のとおりです。(Python2.6およびOO3.1.2を使用)

  • os.environ ['URE_BOOTSTRAP'] ='vnd.sun.star.pathname:c:\ Program Files \ OpenOffice.org 3 \ program \ Fundamental.ini'
  • os.environ ['UNO_PATH'] ='c:\ Program Files \ OpenOffice.org 3 \ program \'
  • os.environ ['PATH']。append('c:\ Program Files \ OpenOffice.org 3 \ URE \ bin; c:\ Program Files \ OpenOffice.org 3 \ Basis \ program;')

Pythonの他のインストールに追加する必要があるpythonpathアイテムは、unoモジュールの場所です。

  • sys.path.append('C:\ Program Files \ OpenOffice.org 3 \ Basis \ program')

これで、単に「unoをインポート」できます。

Pyunoは、同様のバージョンのPythonとのみ互換性があります。OO3.1にはPython2.6.1がバンドルされているため、そのpyunoは別のPython2.6とのみ互換性があります。unoを別のバージョンのPythonにインポートしようとすると、ランタイムエラーが発生します。しかし、Alternative2にはそれを回避する方法があります。

代替案2:WIN32システムに他のPythonをインストールする場合は、Python-UNOブリッジを完全に無視して、代わりにPython-COMブリッジを使用できます。新しいモジュールを1つインストールする必要があり、APIにはいくつかの違いがありますが、Python3を含む任意のバージョンのPythonを使用できます。

于 2010-12-09T00:10:04.530 に答える
0

これに対する答えも必要です。私は Windows XP を使用しており、SQL サーバー DB からデータを抽出してテンプレートの Excel ファイルに挿入するシステムを使用しています。マクロなどを OpenOffice に追加したくありません。しかし、サービスを使用してこれらのファイルを作成したいと考えています。

ただし、uno modude をインポートできると思われる唯一の方法は、openoffice ディレクトリから python.exe を使用することです。それでも、何らかの理由でこのexecをシステムのpyファイルに関連付けることができないため、毎回フルパス名を入力する必要があります。

Linuxでは、Pyunoモジュールはアドオンであり、通常のpythonで使用できることは知っていますが、Windowsではそうではないようです。openoffice の下の python exec から関連するすべてのパスの詳細をリストし、それらを python 2.7 に複製しましたが、pyuno はどの DDL への参照もなく DDL を見つけることができず、まだ失敗します。

于 2010-11-28T15:14:06.537 に答える
0

答えは「これはありえない」だと思います。ウェブ上の他の読み物から、python.org から python 実行可能ファイルをコンパイル/リンクするために使用される stdlib は、OpenOffice.org で配布される python.exe をコンパイル/リンクするために使用される stdlib とは異なるようです。理由はわかりませんが、両方の python が同じ起動メッセージを表示するという事実にまだ混乱しています。したがって、ここで完全に間違った方向に進んでいる可能性があります。

于 2010-12-03T01:30:32.800 に答える