Python简单代码中的错误

1 投票
2 回答
734 浏览
提问于 2025-04-18 04:15

我写这个问题的时候感觉有点不好意思。

我刚安装了 Python 3.4 和 Django 1.8。

如果我进入 Python 解释器,然后输入:

>>> import django    
>>> print(django.get_version())

我得到的结果是 1.8,这没问题。

但是如果我创建一个文件叫做 django.py,然后在里面输入:

import django
print(django.get_version())

会发生两件事:

  1. 当我运行这个文件时,会出现错误:

    Traceback (most recent call last):
      File "django.py", line 1, in <module>
        import django
      File "C:\Python_Mongo\django.py", line 2, in <module>
        print(django.get_version())
    AttributeError: 'module' object has no attribute 'get_version'
    
  2. 然后它会创建一个缓存文件夹 __pycache__,如果我直接启动 Python 解释器并输入命令:import django,它会运行我的 django.py 文件!(其他命令都没问题)。

请帮帮我 :(

2 个回答

3

这没什么好奇怪的。如果你在一个叫做 anything.py 的文件里使用 import anything,它会导入它自己。

在Python中,导入模块时,它会先在当前目录里找,如果找不到,才会去系统路径里找。

6

你在本地目录里有一个叫 django.py 的文件,这个文件和Django这个包发生了冲突。你需要把它改个名字。

看看你的错误信息:

  File "django.py", line 1, in <module>
    import django

注意到这一行 import django 是从一个叫 django.py 的文件里运行的吗?

撰写回答