有没有办法从python3.11调用python3.8代码?

问题描述 投票:0回答:1

我有一些代码由于某种原因在 python3.11 中中断,即 paddleocr。我想将它集成到一个用 python3.11 编写的程序中。

虽然有在 Web 服务中运行 paddleocr 的明显方法,并通过该服务或通过该方法从程序的其余部分调用它,但我想知道是否有更好的方法可以做到这一点。

总而言之,有没有一种方法可以比创建 API 更直接地从 python3.11 环境中调用 python3.8 环境中的函数?

python-3.x grpc ipc python-3.8 paddle-paddle
1个回答
0
投票

在使用

Python 3.8
的环境/程序中运行为特定版本(如
Python 3.11
)编写的 Python 代码确实会带来兼容性问题,特别是对于可能具有与新版本不兼容的依赖项的库(在本例中为
paddleocr
) Python 的。

虽然设置 Web 服务并通过 API 调用它是一种常见的解决方案,但还有一种直接的本地方法:您可以使用 Python 的 subprocess 模块从您的

Python 3.8
程序中运行带有
Python 3.11
的脚本。此方法涉及将
Python 3.8
解释器作为子进程调用,然后运行必要的 Python 脚本或命令。

import subprocess
result = subprocess.run(["path/to/python3.8", "path/to/script.py", "arg1", "arg2"], capture_output=True, text=True)
print(result.stdout)

虽然此方法比 API 更直接,但它的灵活性稍差,并且管理起来更具挑战性,尤其是对于复杂的交互。

© www.soinside.com 2019 - 2024. All rights reserved.