test: 博客美化中……

python之import子目录文件

问题:

 

 

在pre_tab.py文件下:

 

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

 

 

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 <module>
    from test.te import login1
ImportError: 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成功.
 
 
 
posted @   前程明亮  阅读(8984)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示