我有一个这样的文件夹:
draft
model
a.py
package
b.py
我想通过这段代码将a.py中的函数导入到b.py中
from ..model import a
。ImportError: attempted relative import with no known parent package
我尝试这个问题的第一个答案
python -m package.b
ImportError: attempted relative import beyond top-level package
我尝试将
__init__.py
添加到模型和包以及草稿文件夹中。我知道有一个解决方案,例如:
import sys
sys.path.append(f'{source_path}/draft/model')
但是当我将此代码移动到另一台计算机时,必须更改 source_path。当我忘记时可能会出现错误。
有人可以帮助我吗?
当你运行“python -m package.b”时,工作目录是“/draft”,其中“model”和“package”是两个独立的ROOT包。请注意,这两个包不共享公共父包,因此
from ..
不起作用。
如果您坚持使用相对导入,请将文件作为根包放置在公共父文件夹中。例如,将目录结构重新排列为:
draft
project
model
a.py
package
b.py
并使用命令运行:
python -m project.package.b