problem:Attempted relative import in non-packagepython
所谓相对路径其实就是相对于当前module的路径,但若是直接执行脚本,这个module的name就是“__main__”, 而不是module原来的name, 这样相对路径也就不是原来的相对路径了,导入就会失败,出现错误“ValueError: Attempted relative import in non-package”spa
solve:code
方法1:把src目录加入到sys.path里去it
方法2:把整个工程myproject写成package放进site-packages
而后这样引用
from myproject.XXX.YYY import XXXimport
方法3:使用python -m 执行module
例如myproject.mypackage.module1
引用
若是你直接執行方法
python myproject/mypackage/module1.py
im
由于是直接执行的,对于module1.py不知道相对路径是什么,可采用脚本
python -m myproject.mypackage.module1执行。
至关于
import myproject
import mypackage
import module1
即:import myproject.mypackage.module1这种形式的绝对引用
而且会设置 __package__ = 'myproject.mypackage'