python包之间引用_关于python包,模块引用的问题

首先需要理解一点的是,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,同时把相对引用改成正常引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值