关于python中ImportError: attempted relative import with no known parent package

解决办法:
1、首先确保所在目录是Python Package而不是一般的New Stratch File
        Python Package下有__init___.py或自己建空的__init___.py
        Python 2是包的标志,只有拥有__init__文件的目录才会叫做包
        python 3也是包的标志,但是不强制识别,py2和py3的__init__文件共有功能,初始化包
注意:py文件名不能出现空格,否则无法调用!!

2、pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->sources path将当前工作的文件夹加入source_path就可以了;

3、(1)绝对导入(absolute import):从包/模块外部,按照目标模块的存在路径从外到内进行导入。
        绝对导入可以检索到三种来源的包:
                Python自带或pip安装的包;
                Python解释器启动位置同层模块和包;
                人为添加到系统环境变量PYTHONPATH的模块和包。
        绝对导入示例:
                单独的模块:import module
                模块位于包内部(不存在子包):from package import module
                模块位于包内部(存在子包):from package.subpackage import module

        (2)相对导入(relative import)
           位于同一包中的不同子包和模块,可以通过前缀.标识存在调用关系的包/模块之间的路径依赖关系并进行相对调用。
        示例:
                同层目录的模块:from . import module
                模块位于同层包内部(不存在子包):from .package import module
                模块位于同层包内部(存在子包):from .packge.subpackge import module
                模块位于上一层级目录:将以上语句的前缀进行替换from . -> from ..,以此类推

若以上还是无法解决请尝试下面操作
4、不同目录下在a.py中导入b.py
        import sys
        sys.path.append("b模块的绝对路径")
        import b

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值