libreoffice Python Uno 支持 Ubuntu Saucy 13.10 上的 Python 2.7

libreoffice Python Uno 支持 Ubuntu Saucy 13.10 上的 Python 2.7

我最近升级到了 Ubuntu 13.10,发现 python-uno 包不再可用。相反,我找到了一个 python3-uno 包。不幸的是,我需要 Python uno libreoffice 对 Python 2.7 的支持,因为我正在尝试使用 Appy POD (http://appyframework.org/pod.html), 目前尚不支持 Python 3。有什么想法可以向我现有的 Ubuntu 软件包中添加支持吗?或者是否有 PPA 或类似的东西可以让我获得支持 Python 2.7 的 libreoffice 版本?

答案1

请参阅此答案https://askubuntu.com/a/418550/4397 简而言之:自 Ubuntu 13.10 以来,LibreOffice 的 deb 包不再支持 python2。您也可以使用此脚本重新编译 libreofficehttps://gist.github.com/hbrunn/6f4a007a6ff7f75c0f8b

答案2

对于 Ubuntu 13.10 及更高版本,您需要手动安装 OpenOffice 4.1.1。

  1. 删除以前的版本:

    sudo apt-get remove libreoffice* openoffice*
    sudo apt-get autoremove
    
  2. 安装 Apache OpenOffice 4.1.1

    在 64 位 Ubuntu 上:

    wget sourceforge.net/projects/openofficeorg.mirror/files/4.1.1/binaries/en-GB/Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
    tar -xzvf Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
    cd en-GB/DEBS
    sudo dpkg -i *.deb
    cd desktop-integration
    sudo dpkg -i *.deb
    

    在 32 位 Ubuntu 上:

    wget sourceforge.net/projects/openofficeorg.mirror/files/4.1.1/binaries/en-GB/Apache_OpenOffice_4.1.1_Linux_x86_install-deb_en-GB.tar.gz
    tar -xzvf Apache_OpenOffice_4.1.1_Linux_x86_install-deb_en-GB.tar.gz
    cd en-GB/DEBS
    sudo dpkg -i *.deb
    cd desktop-integration
    sudo dpkg -i *.deb
    
  3. 触摸 uno.pth 以适应 python2.7

    echo /opt/openoffice4/program |sudo tee /usr/lib/python2.7/dist-packages/uno.pth
    

答案3

这是在 Ubuntu 14.04 上使用 Python 2.7 构建和安装 LibreOffice 4.4.7.2 的最新脚本,来自这里

#!/bin/bash -xe

sudo apt-get update
sudo apt-get build-dep libreoffice
sudo apt-get install pkg-config

mkdir libreoffice
cd libreoffice
wget https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/src/libreoffice-4.4.7.2.tar.xz
wget https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/src/libreoffice-dictionaries-4.4.7.2.tar.xz
wget https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/src/libreoffice-help-4.4.7.2.tar.xz
wget https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/src/libreoffice-translations-4.4.7.2.tar.xz

tar -xf libreoffice-4.4.7.2.tar.xz 
tar -xf libreoffice-dictionaries-4.4.7.2.tar.xz 
tar -xf libreoffice-help-4.4.7.2.tar.xz 
tar -xf libreoffice-translations-4.4.7.2.tar.xz 

cd libreoffice-4.4.7.2/
export PYTHON=/usr/bin/python2.7 PYTHON_CFLAGS="$(pkg-config --cflags python-2.7)" PYTHON_LIBS="$(pkg-config --libs python-2.7)"
./autogen.sh --with-package-format=deb --enable-epm
make -j6

sudo dpkg -i workdir/installation/LibreOffice_Dev/deb/install/LibreOfficeDev_4.4.7.2_Linux_x86-64_deb/DEBS/*.deb
# SDK, optional.
# sudo dpkg -i workdir/installation/LibreOffice_Dev_SDK/deb/install/LibreOfficeDev_4.4.7.2_Linux_x86-64_deb_sdk/DEBS/lodevbasis4.4-sdk_4.4.7.2-2_amd64.deb 
sudo apt-get install -f

echo /opt/libreofficedev4.4/program | sudo tee /usr/lib/python2.7/dist-packages/uno.pth

然后 uno 需要此代码才能正常运行:

# XXX: LibreOffice UNO bootstrap.
sys.path.append('/opt/libreofficedev4.4/program')
os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/opt/libreofficedev4.4/program/fundamentalrc')

它可以被放在最顶部/opt/libreofficedev4.4/program/uno.py(虽然这很不方便,但如果你升级软件包,这些更改将会丢失)。

相关内容