python上的Python 3.6安装问题

时间:2017-10-26 17:33:06

标签: python python-3.6 libreoffice-calc pyuno

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

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

问题:尝试使用&#34执行脚本时;导入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'

我无法安装&#39;元素&#39;既不使用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一起提供但我不知道如何处理它

如果你知道如何让这个东西工作或者在哪里获得缺失的元素,那么你的支持将不胜感激。

3 个答案:

答案 0 :(得分:0)

我试图做类似的事情。

如果您使用pip下载uno,可能不是您正在寻找的东西。 (https://pypi.org/project/pyoo/请参阅&#39;先决条件&#39;)。

另外,我读过很多地方明确说过python的系统版本必须与LibreOffice或Openoffice python版本匹配。

我通过使用

简要地尝试修改了PYTHONPATH

&#39;&#39;&#39; import sys

sys.append(&#39; LibreOffice 5文件夹下的pyuno路径&#39;)

导入pyuno &#39;&#39;&#39;

但它导致我的命令窗口冻结。我没有尝试重置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

祝你好运!

答案 1 :(得分:0)

问题与python包uno的版本有关。必须通过发行包安装,对于 Debian 发行版,您必须通过 apt 而不是通过 pip 安装:

$ sudo apt install python3-uno

在 Debian 11 中。

这样做之后,您可以通过pip安装pyoo:

$ pip install pyoo --user # optional

还有他们:

>>> import pyoo
>>>

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

答案 2 :(得分: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>

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

cd /d C:\Program Files\LibreOffice\program
python-core<version>\Scripts\pip install <your package here>