Python 脚本正确执行每条语句,但也返回 ModuleNotFoundError

我在 MacOS 上的终端中运行我的 Python 脚本。


script1.py 源代码:


# A first Python script

import sys              # Load a library module

print(sys.platform)         

print(2 ** 100)             # Raise 2 to a power

x = 'Spam!'

print(x * 8)                # String repetition

Python 交互式会话中的输出:


>>> import script1.py

darwin

1267650600228229401496703205376

Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ModuleNotFoundError: No module named 'script1.py'; 'script1' is not a package

脚本中的所有语句都正确执行,但解释器返回一个错误,指出找不到脚本。


这里发生了什么?


精慕HU
浏览 151回答 2
2回答

青春有我

import&nbsp;script1.py解释器认为您正在尝试py从 package中导入命名的模块script1。现在,它可以找到一个名为script1- 即你的文件名为script1.py.&nbsp;所以它继续加载它。python的“加载”意味着运行文件中的语句。所以它做到了。你得到你的输出。然后解释器意识到它py应该是一个模块,所以script1应该是一个包(即一个包含源文件的目录)。但script1只是一个普通的文件。因此它会抛出该错误。尝试导入名为 的模块script1.py时,您应该使用:import&nbsp;script1尝试运行名为 的文件script1.py时,您可以使用:python&nbsp;script.py

猛跑小猪

您应该在最后删除 .py。当您导入 sys 时,您也不写import sys.py.&nbsp;另请参阅这篇回答如何在 python 中导入您自己的脚本的帖子。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python