我是一个Python新手,所以忍受我:)
我创建了一个名为test.py的文件,其内容如下:
test.py
import sys
print sys.platform
print 2 ** 100
Run Code Online (Sandbox Code Playgroud)
然后我import test.py在解释器中运行文件以遵循我的书中的示例.当我这样做时,我得到输出结果导入错误.
win32
1267650600228229401496703205376
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named py
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此错误以及如何解决?谢谢!
Dzi*_*inX 40
代替:
import test.py
Run Code Online (Sandbox Code Playgroud)
简单地写:
import test
Run Code Online (Sandbox Code Playgroud)
这假设test.py与导入它的文件位于同一目录中.
这个奇怪的错误是Python导入模块的结果.
Python看到:
import test.py
Run Code Online (Sandbox Code Playgroud)
Python认为(简化了一下):
导入模块测试.
- 在模块搜索路径中搜索test.py.
- 执行test.py(获取输出的地方)
- 将'test'作为名称导入当前名称空间
import test.py
- 搜索文件test/py.py
- 抛出ImportError(没有名为'py'的模块).
因为Python允许带点模块名称,它只是认为你有一个名为子模块py的内部test模块,并试图找到.它不知道您正在尝试导入文件.