2014年9月26日金曜日

unoconvが失敗「ERROR: DLL load failed: 指定されたプロシージャが見つかりません。」

unoconvを使って変換しようとすると、次のようなエラーに遭遇致しました。

unoconv: Cannot find a suitable pyuno library and python binary combination in C:\Program Files (x86)\OpenOffice 4

ERROR: DLL load failed: 指定されたプロシージャが見つかりません。



unoconv: Cannot find a suitable pyuno library and python binary combination in C:\Program Files (x86)\OpenOffice 4

ERROR: DLL load failed: 指定されたプロシージャが見つかりません。



unoconv: Cannot find a suitable office installation on your system.

ERROR: Please locate your office installation and send your feedback to:

       http://github.com/dagwieers/unoconv/issues

利用しているOpenOfficeは「Apache_OpenOffice_4.1.1_Win_x86_install_ja.exe」です。

unoconvで当該エラーが出ている箇所では、「import uno, unohelper」をやっています。

そこで、自分でpythonを起動して、それをやってみました。

Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "uno.py", line 36, in <module>
    import socket # since on Windows sal3.dll no longer calls WSAStartup
  File "C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.6\lib\socket
.py", line 47, in <module>
    import _socket
ImportError: DLL load failed: 指定されたプロシージャが見つかりません。
>>>

「import _socket」が失敗しています。

Dependency Walkerで、DLLファイル"C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.6\lib\_socket.pyd"
をチェック致しましたところ、エクスポート関数が無い!
通常、init_xxxなどが輸出されていると思われるのですが、それが無いのです。

私のPython2.7に付いてくるファイル「C:\Python27\DLLs\_socket.pyd」では、「init_socket」と「init_sockobject」が輸出されていました。

つまり、OpenOffice 4.1.1に付いてくるPythonは部分的に壊れている可能性が高いです。

私の手持ちの_socket.pydで置き換えました所、エラーはでなくなりました。

一応、本家にも報告致しました。

0 件のコメント:

コメントを投稿