python下级模块导入上级模块出错

首先看看我的文件结构:
在这里插入图片描述

我现在所在的文件是运算符重载.py模块,需要导入test.py模块和classfile文件夹里的嵌套.py模块,按照大部分人的习惯:
在这里插入图片描述

也没有提示有错误,运行看看:
在这里插入图片描述

出错了,查看了一些博客,有的解决方法是说运行文件只能为最上级的,出错时候得将运行模块弄到最上层去,具体见博客:
https://www.cnblogs.com/ArsenalfanInECNU/p/5346751.html
现在我想要解决的是:低层级的模块调用高层级的模块,找到了两种解决方式,第一种:

import os
import sys
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, path)
import test
from classfile.嵌套 import Point

test.py内的内容是:

print("successfully import!")

来看看运行结果:
在这里插入图片描述

导入test.py模块和嵌套.py模块成功了。
看看第二种方法:

import os
import sys
sys.path.append(os.pardir)
# path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# sys.path.insert(0, path)
import test
from classfile.嵌套 import Point

运行看看效果:
在这里插入图片描述
嵌套.py模块导入了,但是test.py模块导入失败,虽然没有报错,但是没有输出successfully import!字样,为了证明导入失败,我们再在test.py模块内写个简单的函数:
在这里插入图片描述

导入这个函数看看:

import os
import sys
sys.path.append(os.pardir)
# path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# sys.path.insert(0, path)
from test import fun
from classfile.嵌套 import Point

看看结果:
在这里插入图片描述

失败了。
总结一下,第一种方法功能最全,可以导入test.py和嵌套.py;第二种方法可以导入嵌套.py但是不能导入test.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值