正如所描述的在 Apache OpenOffice wiki 中,OpenOffice 应该与其自己的 Python 版本捆绑在一起,在 Windows 上默认位于C:\Program Files\OpenOffice.org <version>\program\python.exe
。
这个 Python 可执行文件在其他平台上位于哪里?这个位置(如果有的话)在哪里正式记录?
答案1
这个地点在哪里(如果有的话)有正式记录?
据我所知,没有任何地方。您是否试图在特定位置进行系统调用?这听起来很危险,因为它可能与您预期的位置略有不同。也许如果您提供有关目标的更多详细信息,那么就会有其他方法来实现它,例如环境变量。
在 Windows 上的位置是(AOO or LO Program Files directory)\program\python.exe
。
Linux 具有系统范围的 Python 版本,因此 AOO 和 LO 不附带自己的版本。然而,在这些系统上,可能需要额外的软件包,例如libreoffice-script-provider-python
。
根据https://ask.libreoffice.org/t/where-is-the-python-executable-embedded-in-libreoffice-on-macos/50042/7,一位用户在 Mac 上找到了它:
/Applications/LibreOffice.app/Contents/Resources/python
编辑:
LO 和 AOO 可以安装在系统上的不同位置,并且可以同时安装,因此您需要指定使用哪个位置。
要在 Windows 上运行 LibreOffice 的 Python,我使用以下批处理脚本。它从我的扩展中添加了库所在的路径,而您的情况可能不需要这些路径。
c:
@rem chdir "%ProgramFiles(x86)%\OpenOffice 4\program\"
@rem chdir "%ProgramFiles(x86)%\LibreOffice 5\program\"
chdir "%ProgramFiles%\LibreOffice\program\"
set ADD_ON=C:\MyExtensionPath
@rem "." is the current directory and is needed to import uno for AOO.
set PYTHONPATH=%ADD_ON%\pythonpath;%ADD_ON%\tests\pythonpath;.
python.exe %1
我还使用 Ubuntu 的 shell 脚本。由于它使用系统范围的 python,因此它要短得多。
export PYTHONPATH=.:../pythonpath:./pythonpath
python3 $1
无论哪种情况,如果 python 脚本计划连接到 LibreOffice(这通常是使用 UNO 运行脚本的原因),那么需要启动 LibreOffice 来监听套接字。
start soffice -accept=socket,host=localhost,port=2002;urp; %1
现在,如果您在 LibreOffice 内部而不是外部运行 python 脚本,那么这些都不是必需的,因为 LibreOffice 已经知道它自己的 python 版本。