2017-05-03 111 views
0

下面的教程我试图创建自己的包没有成功。包含软件包的文件夹的路径位于PYTHONPATH中,软件包文件夹包含“init .py”文件及其模块。Python:“__init__”将不会加载模块

mypath/my_packages/mymath 
---------------------/__init__.py 
---------------------/add.py 
---------------------/division.py 
---------------------/(other .py files) 

path/to/my_packages在PYTHONPATH中。我也可以在“sys.path”中看到它。

如果__init__.py为空,但是不能使用任何模块,我可以“导入mymath”。 如果我尝试从__init__.pyfrom add import add [模块add.py包含函数“add()”])导入模块,我得到一个错误: “ImportError:No module named'add'”。

+1

如何关于'from .add import add'? – ForceBru

+0

解决!谢谢! –

回答

2

如果path/to/my_packages是在PYTHONPATH你应该导入包,比如

from mymath.add import add 

或者,如果你是MYMATH模块(例如__init__)中,你也可以做相对进口,像

from .add import add 
+0

第一种模式也可以在包的'__init__'中使用。 '__init__'正文中的两种方式都会将'mymath.add'暴露给第一个导入'mymath'的模块。 – jsbueno

+0

确实已更新的答案。 – vovaminiof