如何告诉 "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);
并完全省略了这一行,但我仍然得到注释。
那么有没有办法:
- 关闭生成文件中的注释
- 自动添加
from __future__ import annotations
到生成的文件
不要使用 -py3
。 Python 3 不需要它,但启用 Python 3 特定的代码功能,如注释。
我需要使用 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);
并完全省略了这一行,但我仍然得到注释。
那么有没有办法:
- 关闭生成文件中的注释
- 自动添加
from __future__ import annotations
到生成的文件
不要使用 -py3
。 Python 3 不需要它,但启用 Python 3 特定的代码功能,如注释。