gpt4 book ai didi

python-3.x - 查找 'fibo.py' 规范时出错( : 'module' object has no attribute '__path__' )

转载 作者:行者123 更新时间:2023-12-03 08:33:08 24 4
gpt4 key购买 nike

我在 fibo.py 中有一个模块具有以下功能的文件 -

#fibonacci numbers module

def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print(b, end=' ')
a, b = b, a+b
print()

def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result

现在,当我从 cli python3 运行模块时 -
> python3 -m fibo.py

我得到错误
Error while finding spec for 'fibo.py' (<class 'AttributeError'>:
'module' object has no attribute '__path__')
__path__变量 has 具有当前目录。我不知道如何解决这个问题。

最佳答案

有两种方法可以运行 Python 3 脚本。

  • python fibo.py : 参数是 .py 的名称文件。点是文件名的一部分。
  • python -m fibo : 参数是 Python 模块的名称,不带 .py .圆点表示包裹; fibo.py表示“py 包中的模块 fibo 。”

  • 对于像您这样的简单脚本来说,这是一个很小的区别。但是对于更大或更复杂的东西,它对 import 的行为有重要影响。陈述:
  • 第一种形式会导致import搜索 .py 所在的目录文件存在(然后搜索其他各种地方,包括标准库;完整列表见 sys.path )。
  • 第二种形式将使 import搜索当前目录(然后搜索其他各种地方)。

  • 出于这个原因,在 Python 3 下,大多数涉及包(而不仅仅是目录中的松散模块)的设置都需要第二种形式,因为脚本的父包可能无法在第一种形式下导入,这可能会导致问题打破。

    但是对于像这样的简单脚本,任何一种形式都可以。

    关于python-3.x - 查找 'fibo.py' 规范时出错(<class 'AttributeError' > : 'module' object has no attribute '__path__' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230492/

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