Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我不能从当前目录中的另一个py文件导入函数?_Python_Python Import - Fatal编程技术网

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

Python 为什么我不能从当前目录中的另一个py文件导入函数?,python,python-import,Python,Python Import,我无法从另一个py文件导入函数。 如何从同一目录中的另一个py文件导入函数? 两个py文件位于同一目录中。 Python版本是3.7。 操作系统是Windows10。 请帮忙,非常感谢 db.py 从解析器导入解析器#模块“parser”中没有名称“parser” def_db(): ''' 函数:从GUI获取sql,并将其传递给paser ''' 打印(“启动DBMS”) #待办事项 打印(“结束数据库管理系统”) 通过 如果名称=“\uuuuu main\uuuuuuuu”: _db() 解

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

db.py

从解析器导入解析器#模块“parser”中没有名称“parser”
def_db():
'''
函数:从GUI获取sql,并将其传递给paser
'''
打印(“启动DBMS”)
#待办事项
打印(“结束数据库管理系统”)
通过
如果名称=“\uuuuu main\uuuuuuuu”:
_db()
解析器()
parser.py

def解析器(_sql=None):
'''
功能:获取sql字符串,解析它并调用相应的函数
'''
打印(“开始解析”)
#待办事项
打印(“结束解析”)
通过
回溯(最近一次呼叫最后一次):

文件“db.py”,第1行,在

from parser import parser

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

将文件名
parser.py
更改为类似于
parser1.py的其他名称,然后

from parser1 import parser
应该像预期的那样工作


由于编译器认为您引用的是python
解析器
,因为python有名为
解析器
的内置模块,所以您的模块与之冲突,解决方案有两个: 1.更改您的模块名称。 2.使用绝对路径,但首先,您应该将项目目录添加到路径中,如果您使用PyCharm,它可以帮助您默认地执行此操作

如果你的项目结构是这样的

...other directory...
  --top_layer
    --second_layer
    --parser.py
你可以这样导入

from top_layer.parser import parser

对不起,我的英语很差

选择一个不是解析器的名称。