ImportError: attempted relative import with no known parent package
问题背景:
在windows中开发完对应的Pytest代码,在放到centos7.4时,出现这个错;
但是在windows中完美运行;
这个问题确实比较蛋疼,将近两三个小时浪费在这上面了;
概念理解:
- 脚本(script):通过执行该文件能够完成某项任务,其中存在必要的任务执行逻辑(一般通过if __name__ == '__main__:'代码块明确任务的整体执行逻辑);
- 模块(module):以.py作为文件名扩展的单个Python文件,一般由定义不同常量、函数、类而组成,其内容为方便其它模块、脚本进行调用,不存在自身的运行逻辑(也即通过在其它文件中使用import语句进行调用,而非直接通过python *.py运行);
- 包(package):如果一个目录中存在多个模块,可以通过创建__init__.py文件将该当前目录标识为一个包。若多个模块放置于具有多层嵌套的目录当中,其逻辑关系为包(根目录)-> 子包(子目录)-> 模块(*.py);
- 绝对导入(absolute import):从包/模块外部,按照目标模块的存在路径从外到内进行导入。示例单独的模块:import module
- 模块位于包内部(不存在子包):from package import module
- 模块位于包内部(存在子包):from package.subpackage import module)
- 相对导入(relative import):位于同一包中的不同子包和模块,可以通过前缀.标识存在调用关系的包/模块之间的路径依赖关系并进行相对调用。示例:同层目录的模块:from . import module
- 模块位于同层包内部(不存在子包):from .package import module
- 模块位于同层包内部(存在子包):from .packge.subpackge import module模块位于上一层级目录:将以上语句的前缀进行替换from . -> from ..,以此类推
概念参考文章:(1条消息) 【一分钟解决】Python报错ImportError: attempted relative import with no known parent package_Jared Yam的博客-CSDN博客
解决方案:
在你的脚本文件中加入以下代码,将不同模块的包路径添加到运行的主文件中
#!/usr/bin/env python3if __name__ == '__main__' and __package__ is None:from os import sys, path# __file__ should be defined in this casePARENT_DIR = path.dirname(path.dirname(path.abspath(__file__)))sys.path.append(PARENT_DIR)from 你的项目目录.子模块import *
解决方案参考博文:python - Relative imports for the billionth time - Stack Overflow
ImportError: attempted relative import with no known parent package相关推荐
- [译][python]ImportError:attempted relative import with no known parent package
前言 在这篇文章中,我将会解析 ImportError: attempted relative import with no known parent package 这个异常的原因.当你在运行的py ...
- Python项目文件引用问题:ImportError: attempted relative import with no known parent package
一.问题说明: 在做一个项目,采用包的形式进行文件组织,运行代码是会报错ImportError: attempted relative import with no known parent pack ...
- Python报错:ImportError: attempted relative import with no known parent package
目录 一.问题 二.解决 一.问题 运行代码出现报错:ImportError: attempted relative import with no known parent package 问题原因: ...
- Pycharm: ImportError: attempted relative import with no known parent package解决方案
不成熟的解决方案总结 1. 增加sources root,这样被引用的py中的相对路径(特指在路径前一个点两个点这种情况)就能使用了: 2. 引用其他py,不想使用全路径,可以右键被引用的py 复制他 ...
- ImportError:attempted relative import with no known parent package
python包的引用,如果使用pypharm时候,引入包容易出错,解决方法如下 执行代码出现ImportError:attempted relative import with no known pa ...
- Python相对引用报错ImportError: attempted relative import with no known parent package的处理方法
报错信息 ImportError: attempted relative import with no known parent package 报错信息的意思是尝试使用相对路径导入但找不到已知的父级 ...
- 相对导入问题解决,ImportError:attempted relative import with no known parent package
前言 本文中,我将会分析报错 ImportError: attempted relative import with no known parent package 的原因.当运行python脚本,使 ...
- Python 导包问题(importerror: attempted relative import with no known parent package)
Python 导包问题(importerror: attempted relative import with no known parent package) 问题描述 解决方法 问题描述 今天想优 ...
- (已解决)ImportError attempted relative import with no known parent package
想要调用同一目录下的另一个py文件中的类,以下或许是可行的解决方案. 需要做到两点 1. 将主调文件的名称改为__init__.py 2. from 被调文件的文件名称(删去末尾.py) import ...
最新文章
- Error:java: 无效的源发行版: 11
- android 环形时间显示_Android圆形进度条颜色的设置
- NVIDIA各个领域芯片现阶段的性能和适应范围
- 利用Docker volume修改Nginx Docker镜像里index.html
- abp vnext2.0之核心组件模块加载系统源码解析
- for-each循环的认识、定义、适用对象、举例、局限性
- python中的颜色_Python中常见颜色记录
- mysql update 几万 非常慢_面试官:谈谈你对mysql索引的认识?
- 蓝桥杯 ADV-214 算法提高 3-3求圆面积表面积体积
- 【java】创建一个线程,可以对其名称进行设置
- git 使用 tree命令
- python 005 __ 小斌文档 | 函数的定义和调用
- Excel 2010 VBA 入门 069 工作表事件之worksheet_selectionchange
- 网络电话免费打 【推荐】
- 网站php挂马从哪里挂的,寻找PHP(网站)挂马,后门
- 多地政府提及元宇宙发展 | 产业区块链发展周报
- 老卫带你拿offer---招银网络科技篇
- 三层交换技术 ACL访问控制列表
- Linux配置转串口芯片,【官方发布】CH9344 USB转四串口芯片Linux驱动
- 基于thinkphp5的物业管理系统
热门文章
- 美团token解决思路
- ESP32片外PSRAM
- spring boot 整合 ip2region(ip地址库)
- php sapi 那些坑,安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法
- 消息队列相关使用方式
- java List/ArrayList 解惑
- c语言循环中怎样读取多行,c++循环读取多行文本文件
- 关于python语言数值操作符_下列哪种物质是体内硫酸基的提供者
- php过滤微信表情符号的正则表达式方法
- 2021年1~12月语音合成和语音识别论文月报