Python 3.x 查找'的规范时出错;fibo.py';(<;class';AttributeError';>;:';模块';对象没有属性';路径&&';)
我在Python 3.x 查找'的规范时出错;fibo.py';(<;class';AttributeError';>;:';模块';对象没有属性';路径&&';),python-3.x,python-module,Python 3.x,Python Module,我在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
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
我得到了错误
Error while finding spec for 'fibo.py' (<class 'AttributeError'>:
'module' object has no attribute '__path__')
查找“fibo.py”的规范时出错(:
“module”对象没有属性“\uuuuu path\uuuuuu”)
\uuuu路径\uuuu
变量具有当前目录。我不知道如何解决这个问题。有两种方法可以运行Python 3脚本
python fibo.py
:参数是.py
文件的名称。点是文件名的一部分python-m fibo
:参数是python模块的名称,不带.py
。圆点表示包装fibo.py
表示“包fibo
中的模块py
”import
语句的行为有重要影响:
import
搜索.py
文件所在的目录(然后搜索各种其他位置,包括标准库;有关完整列表,请参阅)import
搜索当前目录(然后搜索其他各种位置)但是对于这样一个简单的脚本,两种形式都可以。除了Kevin的答案之外:您应该将脚本文件夹的路径添加到PYTHONPATH环境变量中,以使其在某些操作系统上工作。运行python 3脚本有两种不同的方法: python fibo.py:参数是.py文件的名称
python-m fibo:参数是一个python模块的名称,没有.py很明显,第二种形式对于这样的情况是不合适的,看看它是如何引起错误的。@Tadhgmandald Jensen:仔细看看。OP在模块的名称后面放一个.py。模块名不是文件名。@Kevin-谢谢。我为模块添加了.py扩展名,因此出现了错误,这对我来说完全是误导。感谢您的更正。似乎我们还必须使用-m选项来传递参数……我想您刚刚为我节省了两个小时来思考我的Jenkins构建失败的原因:)谢谢!谢谢你@AMIT SAMOTA我读了上面的答案,但是你的答案很清楚很快。我重读了第一个答案,现在我两个都明白了。对于其他读者来说,您可能正在寻找不带.py位的python-mcom.mypackage.mypythongfile。
Error while finding spec for 'fibo.py' (<class 'AttributeError'>:
'module' object has no attribute '__path__')