我的文件结构为:
mainprogram.py
/Scripts
Data.py
文件Data.py
位于文件夹Scripts
中,并包含一组函数,而mainprogram.py
正在尝试导入这些函数。
如果Data.py
与文件mainprogram.py
位于同一个文件夹中,那么我只需编写from Data import *
即可获得该文件中所有已定义的函数。
但是,如果我尝试从Scripts文件夹中导入错误,我总是会收到错误:ModuleNotFoundError: No module named '__main__.Scripts'; '__main__' is not a package
。
我尝试了各种方法,包括:from .Scripts.Data import *
和from \\Scripts\\Data import *
我是否遗漏了某些内容,或者是否有更好的方法从子文件夹导入Data.py
?
答案 0 :(得分:2)
查看https://docs.python.org/2/tutorial/modules.html:
包是一种使用“点模块名称”构建Python模块命名空间的方法。例如,模块名称AB在名为A的包中指定名为B的子模块。就像使用模块保存不同模块的作者不必担心彼此的全局变量名一样,使用点模块名称可以保存作者NumPy或Python Imaging Library等多模块软件包不必担心彼此的模块名称。
__init__.py
文件夹中需要Scripts
个文件(空)。然后,您应该能够import Scripts.Data
。