gpt4 book ai didi

python - 从父目录相对导入并作为独立文件运行

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:51 24 4
gpt4 key购买 nike

我有以下树结构中的两个文件

├── __init__.py
├── pkg
│   ├── __init__.py
│   └── child.py
└── top.py

top.py 文件如下所示

variable = "I live in the top directory"

child.py 看起来像这样

from ..top import variable

if __name__ == '__main__':
print variable

如果我尝试通过 python pkg/child.py 运行文件,我会收到一条错误消息:ValueError: Attempted relative import in non-package。如果从 pkg 目录以 python child.py 运行它,我会得到同样的错误。

阅读此答案中提供的答案: How to do relative imports in Python?我尝试从父目录执行 python -m pkg.child 。然后我收到错误:ValueError: Attempted relative import beyond toplevel package

所以我开始没有想法了。你应该怎么做?

最佳答案

假设包含top.py 的目录名为foo。然后更改当前工作目录 to the parent of foo这样该目录将包含在 sys.path 中。

cd /path/to/parent/of/foo

然后将 child.py 作为模块运行:

python -m foo.pkg.child

产量

I live in the top directory

cd /path/to/foo
python -m pkg.child

不起作用,因为相对导入

from ..top import variable

指的是foo,child.py上面两个目录的包。 foo 是如果您位于 目录 foo 并运行 python -m pkg.child,则不会被识别为包。

关于python - 从父目录相对导入并作为独立文件运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com