我是一个Python新手,所以忍受我:)
我创建了一个名为test.py的文件,其内容如下:
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
为什么我会收到此错误,如何解决?谢谢!
答案 0 :(得分:39)
而不是:
import test.py
简单地写:
import test
这假设test.py与导入它的文件位于同一目录中。
答案 1 :(得分:6)
这个看起来很奇怪的错误是Python导入模块的结果。
Python看到:
import test.py
Python认为(简化了一下):
导入模块测试。
- 在模块搜索路径中搜索test.py
- 执行test.py(获取输出的地方)
- 将'test'作为名称导入当前名称空间
import test.py
- 搜索文件test / py.py
- 抛出ImportError(没有名为'py'的模块)。
因为python允许使用虚线模块名称,所以它只是认为你在py
模块中有一个名为test
的子模块,并试图找到它。它不知道你是在尝试导入文件。
答案 2 :(得分:5)
导入时不指定扩展名。只是做:
import test
答案 3 :(得分:2)
正如其他人所提到的,您不需要将文件扩展名放在import语句中。推荐阅读是Modules section of the Python Tutorial。
对于错误的更多背景,解释器认为您正在尝试从py
包中导入名为test
的模块,因为点表示封装。因为不存在这样的模块(和test isn't even a package!),所以它会引发错误。
如more in-depth documentation on the import statement所示,在尝试导入test
模块之前,它仍会执行py
模块中的所有语句,这就是您打印出值的原因。