导包分为:绝对路径、相对路径

在测试时发现不能够使用相对路径

查过之后才知道:

运行模块(如:main.py)中导包只能使用绝对路径,不能使用相对路径

官方文档:

Note that relative imports are based on the name of the current module. Since the name of the main module is always __main__, modules intended for use as the main module of a Python application must always use absolute imports.

例子:

main.py

from pack.test import run
run()

test.py

from .sub_pack.sub_test import a
def run():
print(a)

sub_test

a = 1

项目中main.py才是主程序,所以只能有绝对路径;

而其他py文件中可以有绝对路径和相对路径

相对路径导入:

from .  import method/attr/class,只能从__init__中导入函数/变量等

from .m1 import class1与 from m1 import class1等同,都是从同级导入


update:

注意:绝对路径是从sys.path开始找,而相对路径是从当前路径开始找

参考:

ModuleNotFoundError: No module named '__main__.xxxx'

最新文章

  1. Unity 3D json嵌套使用以及多种类型匹配
  2. 【JS基础】
  3. 连连看游戏(dfs)【华为上机题目】
  4. NASA的下一个十年(译)
  5. ASP跨域调用Webservices方法
  6. Grunt一辈子的好基友:yeoman
  7. getLovParameter
  8. 利用 NUget包 EPPlus 实现数据导出到Excel(适用于DTcms)
  9. sql 的错误处理功能很弱
  10. Python 购物车---之商家部分
  11. 重写系统中的UINavigationController返回按钮的事件
  12. strace 分析 跟踪 进程错误
  13. 【NOIP2013提高组】火柴排队
  14. 集群通信组件Tribes之如何维护集群成员信息
  15. [Swift]LeetCode823. 带因子的二叉树 | Binary Trees With Factors
  16. 学习Axure RP原型设计
  17. NLP基础——词集模型(SOW)和词袋模型(BOW)
  18. laravel 守护进程Supervisor的配置
  19. Linux之cp、rm、mv
  20. Lozad.js 简单使用

热门文章

  1. FutureTask源码2
  2. PHP命令执行php文件需要注意的问题
  3. JDK1.8--API
  4. 【More Effective C++ 条款4】非必要不提供default constructor
  5. Java自学-类和对象 访问修饰符
  6. THUPC2019/CTS2019/APIO2019自闭记
  7. java8时间处理实例
  8. 【mybatis】mybatis一条sql更新两张数据表,mybatis关联更新多张数据表
  9. spring boot 在eclipse里启动正常,但打包后启动不起来
  10. 使用XSSFWorkbook 读取excel