奇怪的Python日期时间导入问题

奇怪的Python日期时间导入问题,python,datetime,import,Python,Datetime,Import,嗨 我发现这个问题在不同的设置中表现得不同。 我做过以下任何一项工作,而其他的都失败了,这有时会发生变化(即一个代码片段在一个设置中失败,而另一个在另一个设置中失败) 例如,我刚刚从2.6升级到Python2.7,第一个代码段在出现错误之前工作正常 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 AttributeError:类型对象“datetime.datetime”没有属性“datetime” 这很好,但是相同的代码段在2.6中工作,而第二个代码段失败。现在它倒过来了 这是一个很奇

嗨 我发现这个问题在不同的设置中表现得不同。 我做过以下任何一项工作,而其他的都失败了,这有时会发生变化(即一个代码片段在一个设置中失败,而另一个在另一个设置中失败)

例如,我刚刚从2.6升级到Python2.7,第一个代码段在出现错误之前工作正常

回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:类型对象“datetime.datetime”没有属性“datetime”

这很好,但是相同的代码段在2.6中工作,而第二个代码段失败。现在它倒过来了

这是一个很奇怪的问题

谢谢
哈雷尔,你错了。第一个代码段在两个版本中都不正确。

如果您正在从datetime导入datetime执行
,则需要使用
datetime.utcnow()
,而不是
datetime.datetime.utcnow()
。我看不出你的第一个片段是如何工作的

>>从datetime导入datetime
>>>datetime.datetime.utcnow()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:类型对象“datetime.datetime”没有属性“datetime”
>>>datetime.utcnow()
datetime.datetime(2011,5,3,14,10,3630592)

这里的其他答案是正确的(您的导入是错误的),但这里有一个片段,可以让您更清楚地了解执行此操作时发生了什么

>>> import datetime
>>> type(datetime)
<class 'module'>
>>> type(datetime.datetime)
<class 'type'>
>>> from datetime import datetime
>>> type(datetime)
<class 'type'>
导入日期时间 >>>类型(日期时间) >>>类型(datetime.datetime) >>>从日期时间导入日期时间 >>>类型(日期时间)
我同意,我不知道它是如何工作的——但它确实。。。这就是它的奇怪之处。它不仅工作正常,我还查看了生产服务器,并在那里运行代码……我能想到的唯一解释是,由于这是在Django应用程序中发生的,也许在某个地方有一个“import datetime”被其他组件调用并防止它被破坏。我遇到了一个类似的问题,我将一些日期格式化逻辑提取到一个单独的格式化类中。
datetime.datetime.utcnow()
调用在原始类中运行良好,但在我的新格式化类中使用了上面提到的相同的
AttributeError
失败。我还认为这是在Python 2.6和2.7之间发生了变化,但最终意识到问题是我将日期格式化类放入了一个名为
xxx.format.datetime
的模块中,这当然会在使用
import datetime
语句时导致问题,并会导致任何以后的
datetime
引用失败。
>>> from datetime import datetime
>>> datetime.datetime.utcnow()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime.utcnow()
datetime.datetime(2011, 5, 3, 14, 10, 36, 30592)
>>> import datetime
>>> type(datetime)
<class 'module'>
>>> type(datetime.datetime)
<class 'type'>
>>> from datetime import datetime
>>> type(datetime)
<class 'type'>