2
Project
__init__.py
main.py
parser.py
从main内部,如何导入我的解析器模块,因为解析器已经是内置的,在?如何导入和/或引用与内置Python名称相同名称的用户定义模块
当前,重命名用户定义的模块是最糟糕的情况解决方案。
我已经试过:
import parser
from parser import TextFileParser
from parser import TextFileParser
from . import parser
from .parser import TextFileParser
from __future__ import absolute_import
from . import parser as myParser
以及其他一些组合。
我已阅读回答to this相关问题,但我的理解是,3.5默认使用绝对导入。我也读过这article,但它似乎并不适用。
我也很高兴别名我需要的类,如果这是可能的。即
TextParseClass = from parser import TextParser
有是取决于这个是名称的一些自动化代码。另外,我认为这个问题会再次出现,比如Python标准库扩展为包含一个新的内置模块,以覆盖我已经制作的模块 – BrianHVB
@Jordy Cuan Petrucci Ugh,我感到尴尬。所以很简单,不知道我是如何忽略它的。谢谢。如果你想 – BrianHVB
'__import __(“Project.parser”)''也会返回你的模块。所以'foo = __import __(“Project.parser”)应该可以工作,尽管它可能不是处理它的最好方法。 – IanAuld