Python包:相对进口(Python packages: relative imports)

2019-06-23 10:42发布

我的工作由核和使用核心多个独立模块的Python应用程序。 我有困难,建立包的相对进口。

app
  |- __init__.py
  |- core
        |- __init__.py
        |- corefile.py

  |- module1
        |- __init__.py
        |- main.py

__init__.py文件是空的。 我跑的Python 2.7.1。

main.py
from .core import *

运行python main.py导致ValueError: Attempted relative import in non-package

类似的问题: 最终的答案相对蟒蛇进口 , 如何做到相对进口在Python? , 在Python相对进口

谢谢您的帮助。

Answer 1:

总之,你只能使用相对进口产品是,自己进口。

例如,如果您有:

$ cat run.py
from app.module1 import main
main.main()
$ python run.py

然后,你可以使用相对导入app/module1/main.py (虽然这将需要from ..core import foo ,因为core/是上一级main.py )。



Answer 2:

import sys
abs_filepath = '/home/n/Documents/IMPORTANT/deep_learning/drori_2018/    final_proj/Ryans_branch/StackGAN/'
# insert your absolute filepath above as abs_filepath = '/path/to/targ/dir'
sys.path.append(abs_filepath)

请更正它是否有与执行问题的import这种方式

其他答案:

另请参阅这里关于正在发生的事情进行彻底的答案。



文章来源: Python packages: relative imports