我目前在做一個個人編碼項目,我想建立一個模塊,但我不知道爲什麼我的結構不上班的路上它應該:自定義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