博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之import子目录文件
阅读量:5973 次
发布时间:2019-06-19

本文共 1132 字,大约阅读时间需要 3 分钟。

问题:

 

 

在pre_tab.py文件下:

 

print("AA")from test.te import login1login1()

 

 

from test.te import login1
程序中此句引入当前目录下test目录中的te.py文件中的login1对象(方法)
但是一直报错 importError 没找到test.te这个模块
 
Traceback (most recent call last):  File "C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/pre_tab.py", line 21, in 
from test.te import login1ImportError: No module named 'test.te'

 

查找原因是test目录下没有创建__init__.py文件(其实默认是有创建的,但我原先删了)
 
 

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.

 渣渣谷哥翻译:
需要__init__.py文件来使Python将目录视为包含包; 这样做是为了防止具有公用名称的目录(例如字符串)意外隐藏模块搜索路径上稍后出现的有效模块。 在最简单的情况下,__init__.py可以只是一个空文件,但它也可以执行包的初始化代码或设置__all__变量,稍后描述。
 
 

解决方法:

在test目录下建__init__().py文件
 
 
补充别人的看法;
  如官网所述,此文件使得这个目录被包含到当前的python package中,
  我理解就是成为一个module,import查找当前目录时这个目录能被识别了,然后import成功.
 
 
 

转载地址:http://ubbox.baihongyu.com/

你可能感兴趣的文章
MPLS基础知识笔记
查看>>
JVM--类加载
查看>>
2.1 View与ViewGroup的概念
查看>>
GuideView
查看>>
《Netty权威指南》第四章 TCP 粘包/拆包问题的解决之道
查看>>
nginx代码分析-基本结构-ngx_pool_t内存池
查看>>
php面向对象总结二
查看>>
git常用使用场景总结
查看>>
JSONObject简介
查看>>
尝鲜mysql5.7.9结果root密码忘记了
查看>>
不要试图去控制每一层的稳定性
查看>>
HTML中网页超链接设计
查看>>
joomla mvc架构 原理
查看>>
JAVA深复制(深克隆)与浅复制(浅克隆)
查看>>
consul服务注册后健康检查一直失败如何解决
查看>>
Linux 下 i2c switch pca9548驱动
查看>>
spring同类方法调用事务使用说明
查看>>
数据库物理设计
查看>>
Go轻松学-第一次努力完成的成果。
查看>>
3.5 break和continue语句
查看>>