Python的

it2024-10-15  38

这几天碰到一个问题,运行脚本的时候__init__.py部分报错了,正好自己对这块不了解,就记录解决的过程,分享给大家!

 

操作步骤:

1、我的文件结构:

Project/ testcases/ __init__.py getuser_test.py save_test.py

2、在 getuser_test.py 里,定义了一个 TestCaseGetuser 的 Class 类:

# in getuser_test.py class TestCaseGetuser(): pass

3、然后在 save_test.py 里,我导入了该类:

# in save_test.py from testcases import TestCaseGetuser

4、运行 save_test.py 时,报错

from testcases import TestCaseGetuser ImportError: cannot import name 'TestCaseGetuser' from 'testcases' (D:\Test\Project\testcases\__init__.py)

 

解决方法:

Python 3.x:

# in __init__.py from.getuser_test import TestCaseGetuser

在模块名称前放置一个.,可以告诉Python你正在加载的模块位于当前模块的目录内。

 

__init__.py 是做什么的?

平时,看一些 Python 相关的项目时,常常会看到 __init__.py,当你使用某些编辑器创建 Python Package 的时候,它也会自动给你生成一个 __init__.py 文件。 下面我们就看看__init__.py 到底是做什么用的。

有两个主要用途:

1、为方便起见:其他用户不需要知道你的函数在包层次结构中的确切位置。

your_package/ __init__.py file1.py file2.py ... fileN.py # in __init__.py from file1 import * from file2 import * ... from fileN import * # in file1.py def add(): pass

其他人可以通过以下方式调用add():

from your_package import add

知道 add()位置的话,可以: 

from your_package.file1 import add

 

2、如果你想初始化一些东西;例如,日志记录(应放在顶层): 

# in __init__.py import logging.config logging.config.dictConfig(Your_logging_config)

 

最新回复(0)