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'

相關文章
相關標籤/搜索