我正在开发一个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
。
类似问题:Ultimate answer to relative python imports,How to do relative imports in Python?,Relative imports in Python
感谢您的帮助。
答案 0 :(得分:2)
简而言之,您只能使用自身导入的包中的相对导入。
例如,如果你有:
$ cat run.py
from app.module1 import main
main.main()
$ python run.py
然后您可以在app/module1/main.py
中使用相对导入(尽管它需要from ..core import foo
,因为core/
比main.py
高一级。)
答案 1 :(得分:0)
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
这种方式出现问题,请更正
另请参阅here以获取有关正在发生的事情的详尽答案。