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

问题描述

是否有一种方法可以在pypy3中运行主脚本,但是可以通过常规python执行/解释的导入(例如helper.py)?反之亦然?

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

是的,我知道您会问为什么还要打扰您。我目前正在考虑这一点,因为在Windows中用python迭代文件比用pypy3逐行迭代文件要快​​得多。我知道他们正在尝试更新/修复此问题,但是由于尚未修复,所以想知道我该怎么做。在Linux中,pypy3即使在迭代文件时也能很好地工作。

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

解决方法

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

  1. Delegator
  2. Envoy
  3. Pexpect

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

您将如何扩展?是一个完全不同的问题。