一、问题再现
有时我们自己编写一些模块时,跨文件夹调用会出现ModuleNotFoundError: No module named 'XXX'
二、解决方案
只需要在下层文件夹中的__init__.py
文件中,添加如下代码即可:
import sys
from os import path
sys.path.append(path.split(path.realpath(__file__))[0])
如图所示:
三、知识补充
导入自定义包的步骤主要包括以下几个方面:
-
包的结构: 确保你的自定义包有正确的结构。一个典型的包结构包括一个包含
__init__.py
文件的目录,以及一些模块文件。 -
sys.path: Python 解释器会在一些默认路径中查找模块,而你的包可能不在这些路径中。因此,你需要确保包所在的路径在
sys.path
中。你可以通过以下方式将包的路径添加到sys.path
:import sys sys.path.append("/path/to/your/package")
这将包含你的包的路径添加到Python解释器的搜索路径中。
-
导入语句: 使用
import
语句导入你的包或模块。假设你有一个包叫做my_package
,并且在其中有一个模块my_module
,你可以这样导入:from my_package import my_module
或者,如果你只想导入模块中的特定函数或变量:
from my_package.my_module import my_function
确保以上步骤都正确执行,你就能成功导入自定义包了。