我有一个像这样的简单项目结构:➜ (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现在我有一个相对导入sample/EDAMTest.py:from ..util.files import * 当我尝试python sample/EDAMTest.py在命令行中从项目根文件夹运行时,我收到一条错误消息:ValueError: attempted relative import beyond top-level package我知道这已经被问过很多次了,但我仍然不明白。由于我是从项目根目录运行脚本,因此在我的理解中Python应该能够“知道”当我尝试导入from ..util.files import *时,它应该上升一个directory,不是吗?
3 回答
当年话下
TA贡献1890条经验 获得超9个赞
sys.path.append()
是一个调整,如果您的目录结构是固定的并且您无能为力。
否则,您可以尝试重新排列文件夹。最简单的方法是将 util 移到 sample 下,另一个选项是将两个文件夹 psrt 都放在一个更大的包中。
也import *
没有被包围。
添加回答
举报
0/150
提交
取消