gpt4 book ai didi

Python - 包不是相对于它们的当前目录吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:54 25 4
gpt4 key购买 nike

好的,我有一个如下所示的文件结构:

  • main.py/
  • 纸/
    • __ 初始化__.py
    • 测试1.py

这是我的 main.py 中的内容:

from paquete import testFunc


def main():
testFunc()


if __name__ == '__main__':
main()

这是我的 test1.py 中的内容:

def testFunc():
print("Hello from test1 function!")

这就是我的 __ init__.py 中的内容:

from test1 import testFunc

但这不起作用,它说没有名为 test1 的模块。

但是,如果我有类似的东西:

from paquete.test1 import testFunc

它工作完美。但我不明白,如果 __init__.py 它与 test1 在同一目录中,为什么我需要在它前面加上目录名称的前缀,就好像我是从项目的根级别开始工作一样?

最佳答案

您当前使用的称为隐式相对导入。它在 Python 3.x 中已弃用,PEP 8 中提到了这一点。 .

您仍然可以使用相对导入;它只需要使用 syntax如下所述,带前导点:

These imports use leading dots to indicate the current and parent packages involved in the relative import.

# Relative
from .test1 import testFunc

# Absolute
from paquete.test1 import testFunc

还有一个 reference -

The only acceptable syntax for relative imports is from .[module] import name. All import forms not starting with . are interpreted as absolute imports. (PEP 0328).

关于Python - 包不是相对于它们的当前目录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015103/

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