如果标题混乱,我很抱歉,我会尽力在这里解释一下更详细的描述。使用子模块时,模块是否与包装本身具有相同的名称?
目前,我有一个包名称让我们说DummyPackage。 DummyPackage包含函数,类等三个模块因此,目录结构如下所示:
project_dir/
__init__.py
DummyPackage/
__init__.py
Module1/
__init__.py
module_x.py
module_y.py
Module2/
__init__.py
module_z.py
所以从模块导入的方法看起来像这样
from DummyPackage.Module1.module_x import method_x
我们正在增加新的东西,以项目和我想创建一个模块,名为DummyProject,这应该是导入的这样
from DummyProject import new_method
我认为,只有添加文件DummyPackage.py会够了,但显然不是。我试图将其添加到project_dir/dir和DummyPackage/dir,但都不起作用。
是因为名称冲突吗?有没有可能有这样的代码?
import DummyPackage
from DummyPackage.Module1.module_x import method_x
DummyPackage.new_method
method_x
非常感谢您的帮助。
如果您将'DummyProject.py'添加到'DummyPackage'文件夹中,那么您将使用'import DummyPackage.DummyProject'来导入它吗? –
或者如果您是从'module_x.py'内导入它的,您可以使用'from..DummyProject import new_method'参见[文档](https://docs.python.org/2/tutorial/modules.html#intra -package-references)的细节。 –
或者如果你想'new_method'是一个包级变量,你只需要[添加一些代码到你的'__init __。py'](http://stackoverflow.com/a/18979314/5827215) –