如何告诉 "swig -python -py3 myswig.i" 不包含注释

How do tell "swig -python -py3 myswig.i" not to include annotations

我需要使用 SWIG 来支持 Python 2.7 和 Python 3.10。 [是的,我知道 Python 2.7 已经死了,我们正在尽最大努力尽快将用户从它迁移出去。]

我通过 setuptools.setup 使用 Swig 扩展生成我的模块。我可以 运行 使用 Python2 和 Python3 进行设置。 setuptools 程序为 Python2 和 Python3 运行 创建了一个单独的共享库。但是,两个 运行 都会在同一位置生成一个 myswig.py 文件。

事实证明,Py2 和 Py3 生成的文件是相同的,除了 Py3 生成的文件包含函数的注释而 Py2 不包含注释。 Python3 可以读取 Python2 生成的文件并且工作正常。 Python2 无法读取 Python3 生成的文件。

我已经尝试了 %feature("autodoc", 0); 并完全省略了这一行,但我仍然得到注释。

那么有没有办法:

  1. 关闭生成文件中的注释
  2. 自动添加from __future__ import annotations到生成的文件

不要使用 -py3。 Python 3 不需要它,但启用 Python 3 特定的代码功能,如注释。