[英]Eclipse PyDev ignores __init__, leading to unresolved module import error
目前尚不清楚如何在git repo中正確構造我們的PyDev項目/包,以使絕對導入能夠按預期進行 。 這導致Eclipse拋出我不理解的“未解決的導入”錯誤。
當前,回購看起來像這樣:
REPO/ [repo master] # Set as source folder (PYTHONPATH)
package_A/ # Set as source folder (PYTHONPATH)
__init__.py # from foo import some_func
__main__.py # Absolute import required
foo.py # some_func()
package_B # Set as source folder (PYTHONPATH)
__init__.py
__main__.py
bar.py
__init__.py # Empty
package_A/__init__.py
看起來像這樣:
from foo import some_func
現在我去package_A/__main__.py
並想從foo
導入some_func()
:
from foo import some_func # works
from package_A import some_func # unresolved import error in Eclipse
# The latter case should work due to the initial import in __init__
根據此消息 ,第二個選項應該起作用。 這並不表示由於某種原因, package_A/__init__.py
的內容沒有任何作用。 我怎么了
上述未解決的導入錯誤的根本原因是什么?
如果要導入package_A
,則不應將其本身設置為源文件夾。
即:只有REPO
應該被標記為源文件夾(這是應該在PYTHONPATH中的唯一條目)。
請注意,在這種情況下, from foo import some_func
將不起作用...因此,您可以from package_A.foo import some_func
編寫絕對導入,也可以相對from .foo import some_func
: from .foo import some_func
編寫相對導入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.