python:Attempted relative import in non-package

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 XXX
import

方法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'

相关文章
相关标签/搜索