0
我有以下文件夾結構。爲什麼`__init __。py`可以導入一個子模塊,但是使用`from module import *`導入的測試文件不能?
project/
sandbox.py
module/
__init__.py
klass.py
__init__.py
有以下幾點:
from klass import Klass
if __name__ == '__main__':
'do stuff'
這工作得很好。 sandbox.py
看起來是這樣的:
from module import *
if __name__ == '__main__":
'do similar stuff'
在命令行上,而在project
目錄:
$ python module/__init__.py
# things work correctly
$ python sandbox.py
Traceback (most recent call last):
File "sandbox.py", line 1, in <module>
from module import *
File "/Uses/chuck/.../project/module/__init__.py, line 1 in <module>
from klass import Klass
ImportError: No module named 'klass'
我認爲這可能與相對進口的事,並試圖改變from klass import Klass
到from .klass import Klass
,但那也沒用。
我的目標是,從模塊外的文件,能夠使用from module import *
或from module import Klass
。我需要做什麼?
萬一它很重要,這是與虛擬環境中的macOS下的Python 3.5.2。此
你能指出我到:
現在,您可以按以下執行它鏈接,這將幫助我瞭解這些進口應該如何工作的細節? – Chuck
https://docs.python.org/3/library/__main__.html,https://www.python.org/dev/peps/pep-0328/ –