为什么我在Python中遇到以下错误"ImportError:没有名为py的模块"?

jtb*_*dle 19 python

我是一个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与导入它的文件位于同一目录中.


Tri*_*ych 7

这个奇怪的错误是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模块,并试图找到.它不知道您正在尝试导入文件.


Eva*_*ark 5

导入时不指定扩展名.做就是了:

import test
Run Code Online (Sandbox Code Playgroud)