Libreoffice 宏如何通过 shell 函数使用外部 python(非嵌入式)脚本
Libreoffice macro how to use external python (not embedde) script througth shell function
Libreoffice
宏 shell 函数在 shell、PHP 或其他非 python 时工作正常
但是 shell("x.py")
被强制只使用嵌入式 python。我想使用外部 python ,也许存在一些解决方法。
我假设您是在询问有关从 LibreOffice Basic 宏进行调用的问题,因为 Shell 是 Basic 函数。例如,您的代码可能如下所示:
Sub CallPython
filepath = "C:\Python33\python.exe C:\OurDocs\x.py"
Shell(filepath,2)
End Sub
我想知道您的系统使用的 "embedded python" 版本。要找出答案,请将此代码放入 x.py:
import sys
# change this path to a directory located on your system
with open("c:/users/jimstandard/desktop/x.txt", 'w') as f:
f.write(sys.version)
要使用不同版本的 Python,请在上面的 filepath
变量中使用不同的路径。
我经常在 LibreOffice 中使用 Python,但我不这样做。相反,我使用 PyUNO 编写宏,它通常根本不涉及 Basic。也许这就是您真正想要做的。所有宏代码都放在 Python 文件中,并以 Python 而不是 Basic.
编写
有关如何使用 PyUNO 的信息,请参阅 https://wiki.openoffice.org/wiki/Python。
解决方法如下:
创建带有文本的 bat 文件
C:\external_python\python.exe my_py.py
运行 来自基本
oSvc = createUnoService("com.sun.star.system.SystemShellExecute")
oSvc.execute(ConvertToUrl("C:\Windows\explorer.exe "),"D:\my_bat.bat", 0)
Libreoffice
宏 shell 函数在 shell、PHP 或其他非 python 时工作正常
但是 shell("x.py")
被强制只使用嵌入式 python。我想使用外部 python ,也许存在一些解决方法。
我假设您是在询问有关从 LibreOffice Basic 宏进行调用的问题,因为 Shell 是 Basic 函数。例如,您的代码可能如下所示:
Sub CallPython
filepath = "C:\Python33\python.exe C:\OurDocs\x.py"
Shell(filepath,2)
End Sub
我想知道您的系统使用的 "embedded python" 版本。要找出答案,请将此代码放入 x.py:
import sys
# change this path to a directory located on your system
with open("c:/users/jimstandard/desktop/x.txt", 'w') as f:
f.write(sys.version)
要使用不同版本的 Python,请在上面的 filepath
变量中使用不同的路径。
我经常在 LibreOffice 中使用 Python,但我不这样做。相反,我使用 PyUNO 编写宏,它通常根本不涉及 Basic。也许这就是您真正想要做的。所有宏代码都放在 Python 文件中,并以 Python 而不是 Basic.
编写有关如何使用 PyUNO 的信息,请参阅 https://wiki.openoffice.org/wiki/Python。
解决方法如下:
创建带有文本的 bat 文件
C:\external_python\python.exe my_py.py
运行 来自基本
oSvc = createUnoService("com.sun.star.system.SystemShellExecute") oSvc.execute(ConvertToUrl("C:\Windows\explorer.exe "),"D:\my_bat.bat", 0)