簡體   English   中英

Eclipse PyDev忽略__init__,導致未解決的模塊導入錯誤

[英]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_funcfrom .foo import some_func編寫相對導入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM