我有一个带有此代码行的Python 2.x程序:

from types import SliceType


使用python3运行文件时,将显示以下错误:

ImportError: cannot import name 'SliceType'


如何解决此问题,以便Python 2.x和Python 3.x都能执行该文件?

这不是任何其他随机ImportError问题(例如this one)的重复项。当您收到相同的错误消息时,可以通过Google / SO搜索找到它。在编写此问题/答案之前,我无法找到此处描述的问题的任何解决方案。

最佳答案

您可以使用基于try的构造来获得完整的2.x / 3.x兼容性:

try:
    from types import SliceType
except ImportError:
    SliceType = slice


有关Python2 types模块中对象的Python3名称的表,请参见this reference

10-07 15:09