首页 文章

让python导入uno / pyuno

提问于
浏览
2

我一直在寻找一个解决方案,似乎找不到任何有用的东西,只是一堆看似过时或无功能的潜在客户 .

我基本上试图在python中进入hello-world状态,以便我可以从数据库数据以编程方式创建文档页面 .

我尝试安装libreoffice和openoffice . 我将文件安装在默认位置(我做了Windows 7(C:\ Program Files(x86)\ LibreOffice 4)并安装了ubuntu 14并尝试了默认路径(/ usr / lib / libreoffice) .

我在sdk文件夹中遇到了bat脚本()的问题,所以我甚至尝试在基础目录中重新安装,在Windows中没有空格c:\ libreoffice .

我尝试了很多操作试图改变PYTHON PATH设置并安装不同版本的python .

有没有人对如何让python设置为openoffice文件有任何建议?刚刚通过'import uno'语句没有导入错误?我确定这是愚蠢的,但我完全失去了 .

提前致谢 .

编辑:我得到的错误是标准模块未找到错误我得到了错误,无论我是否在本地版本中打开python实例或者驻留在libreoffice文件夹中的那个:

C:\Libreoffice\program\python-core-3.3.3\bin>python
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import uno
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'uno'

编辑2:当我执行查找并在程序文件夹中找到uno.py时,我遇到了'uno'问题 . 我把它添加到我的python路径并且uno加载 . 但是,现在我得到了一个不同的错误:

Traceback (most recent call last):
  File "C:\Users\Alex\workspace\OOTest\test\test.py", line 7, in <module>
    import uno
  File "C:\Libreoffice\program\uno.py", line 21, in <module>
    import pyuno
ImportError: DLL load failed: The specified module could not be found.

我做了一个发现,发现了以下内容:

C:\Libreoffice>find|grep pyuno*
./program/pyuno.pyd
./program/services/pyuno.rdb
./share/registry/pyuno.xcd

我试图将程序文件夹添加到我的Windows路径(已经在python路径中)并仍然有相同的错误 .

关于加载pyuno的任何建议?

1 回答

  • 1

    为了从不同的python运行uno,我发现我必须设置三个值 . 在Win7上,您可以将所有三个设置为用户帐户的用户定义环境值 . 注销然后再打开它们才能正常工作 .

    经过一番尝试和错误后,我提出了以下解决方案 .

    在python安装的lib \ site-packages文件夹中,添加一个OpenOffice.pth文件,其中包含安装子文件夹程序的路径,如:

    content of OpenOffice.path:
    C:\Program Files (x86)\OpenOffice.org 4\basis\program
    

    我没有使用Python 2.7在Win7上运行它来从脚本中设置这个值 . 这就是我使用.pth文件的原因 . 使用OpenOffice 3.x,路径想要到C:\ Program Files(x86)\ OpenOffice.org 3 \ basis \ program .

    import os
    os.environ["URE_BOOTSTRAP"] = r"vnd.sun.star.pathname:C:\Program Files (x86)\OpenOffice 4\program\fundamental.ini"
    os.environ["PATH"] += r";C:\Program Files (x86)\OpenOffice 4\program"
    import uno
    

    在脚本中,将两个environ值设置为fundamental.ini和子文件夹\ program .

    使用OpenOffice 3.x,第二个环境必须看起来像这样

    os.environ["PATH"] += r";C:\Program Files (x86)\OpenOffice.org 3\URE\bin"
    

    当然,您必须更改这些路径以适合您的安装 . 您可能希望在导入uno后立即删除BOOTSTRAP,因为如果在同一台计算机上运行不同版本的OpenOffice或LibreOffice,则会导致冲突 .

    os.environ.pop("URE_BOOTSTRAP")
    

    重要!这只适用于你的python与OpenOffice附带的python相同的版本,即OpenOffice 3.x python 2.6 OpenOffice 4.x python 2.7 LibreOffice 4.x python 3.3

相关问题