为什么python';正在尝试从我的项目目录导入datetime的sqlite3模块?

为什么python';正在尝试从我的项目目录导入datetime的sqlite3模块?,python,sqlite,python-module,Python,Sqlite,Python Module,我试图遵循SQLite接口的示例。第一行代码似乎工作不正常: import sqlite3 因此,试图导入python的sqlite3模块就是试图从调用脚本目录而不是它所在的任何地方导入python的datetime,如下面的回溯所示。我不明白为什么。我错过了什么 Traceback (most recent call last): File "sqlite_test.py", line 3, in <module> import sqlite3 File "/us

我试图遵循SQLite接口的示例。第一行代码似乎工作不正常:

import sqlite3
因此,试图导入python的sqlite3模块就是试图从调用脚本目录而不是它所在的任何地方导入python的datetime,如下面的回溯所示。我不明白为什么。我错过了什么

Traceback (most recent call last):
  File "sqlite_test.py", line 3, in <module>
    import sqlite3
  File "/usr/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/lib/python2.7/sqlite3/dbapi2.py", line 24, in <module>
    import datetime
  File "/home/brian/dev/py/datetime.py", line 3, in <module>
    now = datetime.now()
AttributeError: 'module' object has no attribute 'now'
回溯(最近一次呼叫最后一次):
文件“sqlite_test.py”,第3行,在
导入sqlite3
文件“/usr/lib/python2.7/sqlite3/_init__uu.py”,第24行,在
从dbapi2导入*
文件“/usr/lib/python2.7/sqlite3/dbapi2.py”,第24行,在
导入日期时间
文件“/home/brian/dev/py/datetime.py”,第3行,在
now=datetime.now()
AttributeError:“模块”对象没有“现在”属性

只需将
/home/brian/dev/py/datetime.py
模块重命名为非
datetime.py
,因为它与datetime内置模块同名


请避免将模块命名为与标准库或内置模块名称相同的名称。

更详细地说,有一个名为
datetime
的Python内置模块,用于管理

您已经创建了一个名为
datetime.py
的文件,该文件对应于名为
datetime
的模块。由于
sqlite
希望使用Python内置的
datetime
模块,因此它将导入该模块——但您在同一目录中创建了一个同名文件这一事实意味着Python的优先级规则将选择该模块而不是内置模块

作为类比,如果您在工作目录中创建了一个文件
sqlite3.py
import sqlite3
将为您提供该模块,而不是内置模块


这个故事的寓意是:不要给内置的名字加上阴影。

谢谢。。。我不会再犯那个错误了。谢谢你的类比!