运行 使用 pypy3 或 python 的不同脚本

Run different script with pypy3 or python

有没有办法 运行 pypy3 中的主脚本,但是导入,比如 helper.py 被常规 python 变成 executed/interpreted?反之亦然?

为澄清起见,假设我有 main.py,我想用 pypy3 执行。该脚本导入了帮助程序,我希望 helper.py 中的整个脚本用 python3 执行。或相反亦然。我想知道是否有像 import pyximport; pyximport install() 这样的东西,然后编译导入,基本上 work/act 与 main.py 不同。我想知道是否有类似的事情,我可以做。目前,我会使用 pypy3 main.py 并在 main.py 内使用 subprocess.popen 并执行 python helper.py,并且仅通过 stdout/pipe 传递对象或结果。想知道是否还有其他方法可以做到这一点。

是的,我知道你会问为什么还要费心这样做。我目前正在考虑这一点,因为在 Windows 中使用 python 迭代文件比使用 pypy3 逐行迭代文件快得多。我知道他们正在尝试 update/fix 这个,但由于它尚未修复,我想知道我能做什么。在 Linux 中,pypy3 工作得很好,即使在迭代文件时也是如此。

我想另一种情况可能是 pypy3 尚不支持某个库,因此您仍然希望使用 python3 执行该脚本,但也许您可能想要执行脚本的其他部分使用 pypy3 获得一些性能。希望这个问题很清楚。

子流程似乎是正确的方法。但是,有一些用于管理子流程的人性化等效库,您可以这样看,

  1. Delegator
  2. Envoy
  3. Pexpect

这感觉像是一个有趣的实验,为在一个运行时环境中不受支持但可以在其他一些受支持的环境中执行并仍然保留程序执行的线性流程的库或函数提供后备支持。

你会如何扩展它?是一个完全不同的问题。