如何忽略特定python版本的特定文件

时间:2017-02-06 23:04:09

标签: python

我的应用程序中的一些文件仅用于python 3。

如果代码在python 2上运行,我可以忽略这些文件吗?

示例:

import sys
if sys.version_info.major < 3:
    return  # this doesn't work

<other code should to be ignored for python < 3>

我知道我可以这样做:

import sys
if sys.version_info.major < 3:
    pass
else:
    <other code should to be ignored for python < 3>

但问题是,我可以避免在else范围内包含整个文件上下文吗?

另一个问题是,我可以从__init__.py

中排除此文件吗?

1 个答案:

答案 0 :(得分:0)

目前我只找到了这个解决方案:https://github.com/evanplaice/pypreprocessor/blob/master/Examples/py2and3.py

它需要使用 pypreprocessor 包,它模拟C样式预处理器指令。所以我的代码就是这样:

import sys
from pypreprocessor import pypreprocessor

#exclude
if sys.version_info.major < 3:
    pypreprocessor.defines.append('python3')

pypreprocessor.parse()
#endexclude

#ifdef python3
# <other code should to be ignored for python < 3>
#endif

如果您有任何

,请发布其他解决方案