导入模块时,如何指定解释器来编译模块?

When importing a module, how do I specify an interpreter to compile the module?

我编写了一个模块 (mymodule32.py),其中包含一个仅支持 32 位 Python 的库。我想将此模块导入 64 位 Python 文件 (main64.py)。但是经过搜索,我意识到如果我在 64 位 Python 中导入模块,它将使用 64 位解释器进行编译。我将在 main64.py 中导入 mymodule32.py,但我想用 32 位解释器来解释它。

我安装了Python 3.5 64位,另外我在Anaconda虚拟环境中安装了Python 3.5 32位,名称为py35_32。 我在下面写了我想要的伪代码(当然不行)。

import(interpreter = py35_32) mymodule32

你不能用 import 做你想做的事。解释器是单进程,不能在64位和32位模式之间切换。

你的选择是

  • 运行 所有代码都在 Python 32 位二进制文​​件中。您可以通过测试 sys.maxsize == (2 ** 31 - 1).

  • 来防止使用 64 位二进制文​​件
  • 让你的库也能在 64 位解释器上正常工作(只要确保你的 32 位算法被正确屏蔽)。

  • 运行 另一个 Python 进程作为子进程;该子进程将导入您的模块并使用某种形式的 IPC(进程间通信)在父 64 位进程和子 32 位解释器之间传递数据和结果。然而,这里没有现成的解决方案。