Rya*_*axe 1 python error-handling datetime
所以我正在创建一个模块,我将它导入到python shell并运行一些东西以确保所有功能都能正常工作等等.
出于某种原因,每次运行代码时,都会出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/ryansaxe/Desktop/Code/python/modules/pymaps.py", line 102, in url_maker
#anything can be here
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
Run Code Online (Sandbox Code Playgroud)
所以,在#anything can be here我的代码的第102行是什么.最初的102行是:
if isinstance(startindex,datetime.datetime):
Run Code Online (Sandbox Code Playgroud)
我得到了上面的错误.我在第102行打了一个快速打印声明来检查并给出了同样的错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/ryansaxe/Desktop/Code/python/modules/pymaps.py", line 102, in url_maker
print 'Hello'
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
Run Code Online (Sandbox Code Playgroud)
这是某种错误吗?为什么告诉我线上的日期时间有错误print 'Hello'?
因为它可能会有所帮助,所以我会告诉你我遇到麻烦的功能,因为我不知道这是怎么回事.我保持这print 'Hello'条线,所以你可以看到第102行的位置:
def url_maker(latitudes,longitudes,times=None,color='red',label=' ',zoom=12,center=None,start=None,end=None,by=None,size='600x300'):
urls = []
import datetime
if isinstance(times[0],str) or isinstance(times[0],datetime.datetime):
from dateutil import parser
if isinstance(times[0],str):
times = [parser.parse(x) for x in times]
if isinstance(start,str):
startindex = parser.parse(start)
else:
startindex = start
if isinstance(end,str):
endindex = parse.parse(end)
else:
endindex = end
print 'Hello'
if isinstance(startindex,datetime.datetime):
startpos = between_times(times,startindex,by='start')
elif isinstance(startindex,int):
if isinstance(endindex,datetime.datetime):
startpos = between_times(times,endindex,by='end') - start
else:
startpos = start
else:
pass
if isinstance(endindex,datetime.datetime):
endpos = between_times(times,endindex,by='end')
elif isinstance(endindex,int):
if isinstance(startindex,datetime.datetime):
endpos = between_times(times,startindex,by='start') + end
else:
endpos = end
else:
pass
else:
times = range(1,len(latitudes) + 1)
if isinstance(start,int):
startpos = start
else:
startpos = None
if isinstance(end,int):
endpos = end
else:
endpos = None
if isinstance(by,str):
lat,lon,t = latitudes[startpos:endpos],latitudes[startpos:endpos],times[startpos:endpos]
print lat
t,lats,lons = time_sample(t,by,lat,lon)
elif isinstance(by,int):
lats,lons,t = latitudes[startpos:endpos:by],latitudes[startpos:endpos:by],times[startpos:endpos:by]
else:
lats,lons,t= latitudes[startpos:endpos],latitudes[startpos:endpos],times[startpos:endpos]
print t
print len(t)
if center == None:
latit = [str(i) for i in lats]
longi = [str(i) for i in lons]
center = '¢er=' + common_finder(latit,longi)
else:
center = '¢er=' + '+'.join(center.split())
zoom = '&zoom=' + str(zoom)
for i in range(len(lats)):
#label = str(i)
x,y = str(lats[i]),str(lons[i])
marker = '&markers=color:' + color + '%7Clabel:' + label + '%7C' + x + ',' + y
url = 'http://maps.googleapis.com/maps/api/staticmap?maptype=roadmap&size=' + size + zoom + center + marker + '&sensor=true'
urls.append(url)
#print i
return urls,t
Run Code Online (Sandbox Code Playgroud)
您正在使用陈旧的字节码缓存运行,或者在现有解释器中重新运行代码而不重新启动它.
回溯代码只有字节码可以使用,其中包含文件名和亚麻码信息.发生异常时,将加载源文件以检索原始代码行,但如果源文件已更改,则会导致显示错误的行.
重启解释器和/或删除所有*.pyc文件; 当解释器再次导入代码时,将重新创建后者.
至于你的具体例外; 你可能datetime从datetime某个地方的模块中导入了这个类:
from datetime import datetime
Run Code Online (Sandbox Code Playgroud)
该datetime班没有一个datetime属性,只有该模块.