为什么我不能从当前目录中的另一个py文件导入功能?

时间:2019-10-30 00:53:04

标签: python python-import

我无法从另一个py文件导入函数。 如何从同一目录中的另一个py文件导入函数? 两个py文件位于同一目录中。 Python版本是3.7。 操作系统是Windows 10。 请帮忙,非常感谢。

db.py

from parser import parser   # No name 'parser' in module 'parser'

def _db():
    '''
        Function: Get sql from GUI, and pass it to paser
    '''
    print('__Start DBMS__')
    # TODO

    print('__End DBMS__')

    pass


if __name__ == "__main__":
    _db()
    parser()

parser.py

def parser(_sql=None):
    '''
        Funtion: Get sql string, and parse it and call cressponding functions
    '''
    print('__Start Parsing__')

    # TODO

    print('__End Parsing__')
    pass

回溯(最近通话最近一次):

文件“ db.py”,位于

的第1行
from parser import parser

ImportError:无法从“解析器”(未知位置)导入名称“解析器”

2 个答案:

答案 0 :(得分:0)

将文件名parser.py更改为parser1.py

from parser1 import parser

应能按预期工作。

因为编译器认为您是指python parser library

答案 1 :(得分:0)

因为python具有名为parser的内置模块,所以您的模块与之冲突,解决方案有两个: 1.更改您的模块名称。 2.使用绝对路径,但首先,应将项目目录添加到PATH中,如果使用PyCharm,它可以默认帮助您完成操作。

如果您的项目说明是这样的,

...other directory...
  --top_layer
    --second_layer
    --parser.py

您可以这样导入

from top_layer.parser import parser

不好意思我的英语不好!