2017-04-17 31 views
0

我buily一个包,类似如下的文件夹结构:Python:如果我使用几个子包,应该在__init__.py文件中放置什么?

MyPackage 
| 
├──mypackage 
|  | 
|  ├── __init__.py 
|  | 
|  ├── config.py 
|  | 
|  ├── data_clean 
|  | ├── __init__.py 
|  | └── f1.py 
|  | 
|  ├── data_transform 
|  | ├── __init__.py 
|  | └── g1.py 
|  | 
|  └── stat_calc 
|   ├── __init__.py 
|   ├── s1.py 
|   └── command_line_interface.py # <- users will use this from cmd.exe 
| 
├── README.txt  
| 
└── setup.py 

所有4个__init__.py文件是空的。原来,当我想s1.pyg1.py使用的功能,我会做

import mypackage.data_transform.g1 

,然后某处的路线,我会做

mypackage.data_transform.g1.my_func() 

然后,为了节省空间我改变了所有的进口看起来像

from mypackage.data_transform.g1 import my_func 

然后我会用my_func某处。这个新的语法出现了很多错误,我不知道我该怎么做,或者我应该把什么东西放入__init__.py文件中。

回答

0

在Python 3.3+,__init__.py文件没有必要。在我从脚本中删除所有__init__.py文件后,所有内容都正常运行:

from mypackage.data_transform.g1 import my_func 
相关问题