目前尚不清楚如何在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
中导入:some_func()
foo
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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句