1

我正在运行 Windows 7、Python 3.6 和 LibreOffice 5.4.2.2(按此顺序安装)。

目标:在 LibreOffice 之外的 Python 3.6 上安装和使用 pyuno(独立 IDE,在他的案例中:PyCharm 2017.2.3 社区版)。我希望能够运行在 Calc 表上运行的脚本,就像在 Excel 上使用 Pandas 一样。

问题:尝试在开始时使用“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 安装“元素”。我通过 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)安装 python-uno 的结果相同。

我在猜测(或者更确切地说是在其他线程上阅读)并且 init__.py 文件可能在我的 Pycharm/python 3.6 和 Python 3.5 之间存在冲突,它与 Libre Office 一起提供,但我不知道该怎么做。

如果您知道如何让这个东西工作或从哪里获得缺少的元素,我们将非常感谢您的支持。

4

3 回答 3

0

问题涉及 python 包 uno 的版本。它必须通过分发包安装,对于 Debian 分发,您必须通过 apt 而不是 pip 安装:

$ sudo apt install python3-uno

在 Debian 11 中。

完成后,您可以通过 pip 安装 pyoo:

$ pip install pyoo --user # optional

还有他们:

>>> import pyoo
>>>

如果您尝试使用 pip(或 pip3)安装,它将失败,我不知道确切原因,因为它是兼容版本。

于 2021-07-28T22:40:21.457 回答
0

我正在尝试做类似的事情。

如果您使用 pip 下载 uno,它可能不是您要找的东西。(https://pypi.org/project/pyoo/见“先决条件”)。

此外,我读过的许多地方都明确表示 python 的系统版本必须与 LibreOffice 或 Openoffice python 版本匹配。

我简要地尝试使用修改 PYTHONPATH

''' 导入系统

sys.append('LibreOffice 5 文件夹下 pyuno 的路径')

进口pyuno'''

但它导致我的命令窗口只是冻结。我没有尝试重置 URE_BOOTSTRAP,所以这可能会奏效。

否则,很多人说要使用不兼容的 python 版本在 OpenOffice 或 LibreOffice 上操作,您应该使用 COM(组件对象模型)方法/工具,尽管我没有这方面的经验,文档也不是很好。我确实找到了这本书和演示文稿,但它涉及到我尚未完成的大量研究:

书: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 回答
0

在 Windows 中,LibO 运行它自己的 Python 版本

C:\Program Files\LibreOffice\program\python-core-<version>. 

如果你想在 Calc 中运行脚本,你可以考虑在 LibO Python 中安装你最喜欢的包。它需要一些配置,但是您将能够运行一些非常漂亮的宏。

这通常只有在您的机器上有管理员权限或者您可以说服您的 IT 人员更改权限时才有效。通常,我将权限更改为所有人/完全控制

C:\Program Files\LibreOffice\program  # Everyone/Full control permissions
C:\Program Files\LibreOffice\share  # Optional Everyone/Full control permissions
                                    # this is where LibO looks for macros

然后你必须安装 pip (它不附带 LibO python)。下载get-pip.py并将其保存在某处。然后从命令提示符运行它:

cd /d C:\Program Files\LibreOffice\program
python <path to get-pip.py>

现在您已将 pip 安装在 pythoncore-/Scripts 文件夹中。要在命令提示符下安装您喜欢的软件包:

cd /d C:\Program Files\LibreOffice\program
python-core<version>\Scripts\pip install <your package here>
于 2021-07-28T23:16:28.333 回答