gpt4 book ai didi

python - 如何在 Python 3 中导入上层包

转载 作者:行者123 更新时间:2023-12-01 05:04:18 25 4
gpt4 key购买 nike

我有这样的文件结构:

/mypkg
/__init__.py
/apkg
/__init__.py

如何在不使用 sys.path 的情况下从/mypkg/apkg/__init__.py 导入/mypkg/__init__.py 并在包内。我的意思是:

# I do not want to do this since path is already outside the package.
import sys
sys.path.append('../../')
import mypkg

再次感谢。

最佳答案

简单的回答是你不能。您可以从两个位置导入:

  1. 您的模块位于 Python 路径 (sys.path) 的目录中。
  2. 您当前的工作目录。

要从父目录导入,您需要将该目录添加到您的路径中。

此外,您正在创建某种循环依赖关系。我强烈建议您重新考虑您的整体结构,因为让模块导入其“父级”并没有真正的意义。您需要更高级别目录中的其他文件这一事实表明,“apkg”中的文件可能应该与“mypkg”处于同一级别。

回复您的评论:您没有导入 __init__.py 文件。它们就像模块的目录一样,因此您可以利用模块中包含的对象和定义。如有必要,他们还可以在导入模块内容时对其内容进行初始化。 __init__.py 文件中不应该有任何您想要导入到另一个脚本中的代码。

关于python - 如何在 Python 3 中导入上层包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370494/

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