2016-03-01 49 views
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

+0

有是取决于这个是名称的一些自动化代码。另外,我认为这个问题会再次出现,比如Python标准库扩展为包含一个新的内置模块,以覆盖我已经制作的模块 – BrianHVB

+0

@Jordy Cuan Petrucci Ugh,我感到尴尬。所以很简单,不知道我是如何忽略它的。谢谢。如果你想 – BrianHVB

+0

'__import __(“Project.parser”)''也会返回你的模块。所以'foo = __import __(“Project.parser”)应该可以工作,尽管它可能不是处理它的最好方法。 – IanAuld

回答

2

使用此:from Project import parser

相关问题