我有一個像這樣的簡單項目結(jié)構(gòu):? (venv:evernote) evernote_bear_project git:(master) ? tree | grep -v pyc.├── README.md...(snip)...├── manage.py├── sample│ ├── EDAMTest.py <==== here is an import that won't work│ └── enlogo.png└── util ├── __init__.py ├── files.py <====== This is being imported └── test_files.py現(xiàn)在我有一個相對導入sample/EDAMTest.py:from ..util.files import * 當我嘗試python sample/EDAMTest.py在命令行中從項目根文件夾運行時,我收到一條錯誤消息:ValueError: attempted relative import beyond top-level package我知道這已經(jīng)被問過很多次了,但我仍然不明白。由于我是從項目根目錄運行腳本,因此在我的理解中Python應該能夠“知道”當我嘗試導入from ..util.files import *時,它應該上升一個directory,不是嗎?
3 回答

當年話下
TA貢獻1890條經(jīng)驗 獲得超9個贊
sys.path.append()
是一個調(diào)整,如果您的目錄結(jié)構(gòu)是固定的并且您無能為力。
否則,您可以嘗試重新排列文件夾。最簡單的方法是將 util 移到 sample 下,另一個選項是將兩個文件夾 psrt 都放在一個更大的包中。
也import *
沒有被包圍。
添加回答
舉報
0/150
提交
取消