python导入库的问题

如:
目录A有2个文件a.py和b.py
a.py

from b import B
def a_func():
    tb = B()

b.py

class B():
    def __init__(self):
        pass

目录B有c.py

from A.a import a_func
a_func()

然后运行c.py就报错
ModuleNotFoundError: No module named 'b'
怎么解决,谢谢了

阅读 2.8k
2 个回答

把模块目录路径添加到python全局变量中,由于不知道你目录层级如何,所以就把目录A和目录B都添加了

下面是交互式命令行实现目的的方式,只在当前进程生效,如果需要一直生效,请参考:python的sys.path(环境变量)简单总结

import sys
sys.path.append('A')
sys.path.append('B')

然后引入的时候就可以直接引用了

from a import a_func
from b import B

你是把A目录当做package;B目录的用途情况不了解
1)如果是B下面有执行的入口,那么就按照上面Tony大佬的sys.path.append()
2)如果B也是一个package,那么就from ..A.a import a_func

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题