为什么在Python中会出现以下错误;ImportError:没有名为py的模块;?
我是一个Python新手,所以请容忍我:) 我创建了一个名为test.py的文件,其内容如下:为什么在Python中会出现以下错误;ImportError:没有名为py的模块;?,python,Python,我是一个Python新手,所以请容忍我:) 我创建了一个名为test.py的文件,其内容如下: test.py import sys print sys.platform print 2 ** 100 然后,我在解释器中运行了import test.py文件,以遵循我书中的一个示例。 当我这样做的时候,我得到了最后带有导入错误的输出 win32 1267650600228229401496703205376 Traceback (most recent call last): File "
test.py
import sys
print sys.platform
print 2 ** 100
然后,我在解释器中运行了import test.py
文件,以遵循我书中的一个示例。
当我这样做的时候,我得到了最后带有导入错误的输出
win32
1267650600228229401496703205376
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named py
win32
1267650600228229401496703205376
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为py的模块
为什么会出现此错误以及如何修复它?谢谢 导入时不指定扩展名。只要做:
import test
而不是:
import test.py
简单地写下:
import test
这假设test.py与导入它的文件位于同一目录中。正如其他人所提到的,您不需要将文件扩展名放在import语句中。推荐阅读是最好的 对于错误的更多背景信息,解释器认为您正在尝试从
test
包内部导入名为py
的模块,因为点表示封装。因为不存在这样的模块(和!),所以会引发该错误
如中所示,在尝试导入
py
模块之前,它仍然会执行test
模块中的所有语句,这就是为什么会打印出值。这个奇怪的错误是Python导入模块的结果
Python看到了:
import test.py
Python认为(简化了一点):
导入模块测试
- 在模块搜索路径中搜索test.py
- 执行test.py(从中获取输出)
- 将“test”作为名称导入当前命名空间
- 搜索文件test/py.py
- 找到抛出导入错误(未找到名为“py”的模块)
因为python允许点模块名,所以它认为在
test
模块中有一个名为py
的子模块,并试图找到它。它不知道您正在尝试导入文件。我认为术语在技术上是“在test
包中名为py
的模块”。(但可能是错的!)