我目前在做一个个人编码项目,我想建立一个模块,但我不知道为什么我的结构不上班的路上它应该:自定义Python模块结构
\mainModule
__init__.py
main.py
\subModule_1
__init__.py
someCode_1.py
someCode_2.py
\subModule_2
__init__.py
otherCode.py
我希望能够从main.py
运行下面的代码:
>>> from subModule_1 import someCode_1
>>> someCode_1.function()
"Hey, this works!"
>>> var = someCode_2.someClass("blahblahblah")
>>> var.classMethod1()
>>> "blah blah blah"
>>> from subModule2 import otherCode
>>> otherCode("runCode","#ff281ba0")
然而,当我尝试导入someCode_1
,例如,它返回一个AttributeError
,我真的不知道为什么。它与__init__.py
文件有关吗?
修订
最小的,完整的和可核查的(我希望...)
\mainDir __init__.py # blank file main.py \subDir __init__.py # blank file codeFile.py
使用此...
#main.py file import subDir subDir.codeFile.function()
这...
#codeFile.py file def function(): return "something"
...它返回上面提到的同样的问题**。
**确切的错误是:
Traceback (most recent call last):
File "C:\...\mainDir\main.py", line 2, in <module>
subDir.codeFile.function()
AttributeError: module 'subDir' has no attribute 'codeFile'
贷@jonrsharpe:谢谢你向我展示如何正确使用堆栈溢出。
请提供[MCVE。另外你似乎在说你想从'main.py'“*中运行一个交互式会话*,这并不完全合理。 – jonrsharpe
可能是由导入时执行的'someCode_1'中的某些模块级代码引起的。确切的错误信息是什么? – schwobaseggl
@jonrsharpe对不起,我的意思是使用解释器编译并运行'main.py'(对不起,菜鸟错误) – BUZZYSIN