首先需要理解一点的是,python在import包和模块的时候,是在sys.path中的路径进行的搜索,如果你当前的项目没有加到sys.path中,那么如果你需要引用项目中某个文件夹中的模块,可能会出现问题。
当你需要引用的包在另一个和你平行的文件夹中时,例如:
project
----folder1
--------demo1.py
----folder2
--------demo1.py
如果需要在demo1中引用demo2中的方法,直接引用(from folder2 import demo2)是没用的,我们需要先把整个project的路径加到python的搜索目录下,在demo1文件的最开头加入如下代码即可
如果遇到相对引用,那就比较讨厌,例如,from ..folder2 import demo2,使用以上方法是无效的,相对引用符号.或者..出现时,python会查看该python的__name__和__package__值,用于确认其整个项目的路径依赖,具体的解决方案参考以下链接:
https://napuzba.com/a/import-error-relative-no-parent
简单的说就是在项目每个文件夹下新建空的__init__.py文件(让python把该目录识别为一个包),然后在整个项目的跟节点(根节点同样需要创建__init__py文件)创建一个main.py作为系统入口文件,这时,直接在mian中调用项目中的包和包中的模块,模块中的.或..相对引用路径是可以工作的。这样你就可以debug整个项目了,
但是如果你需要debug项目中的某一个文件,还是建议把项目路径加入sys.path,同时把相对引用改成正常引用。