Python: “global name 'time' is not defined”

匿名 (未验证) 提交于 2019-12-03 02:24:01

问题:

I'm writing a silly program in python for a friend that prints "We are the knights who say 'Ni'!". then sleeps for 3 seconds, and then prints "Ni!" twenty times at random intervals using the random module's uniform() method. Here's my code:

from time import sleep import random  def knights_of_ni():     generator = random.Random()     print "We are the knights who say 'ni'."     sleep(3)     for i in range(0,20):         print "Ni!"         sleep(generator.uniform(0,2)) 

I've tried to import this module by typing in the interpreter from silly import knights_of_ni() and import silly, then calling the function with either knights_of_ni() or silly.knights_of_ni() (respectively), but I always get the same exception:

 NameError: global name 'time' is not defined 

What is causing this error and how can I fix my code?

Edit: quite frankly, I'm not sure what problem I was having either. I ran the code the next morning and it worked just fine. I swear that the code produced errors last night... Anyway, thanks for your insight.

回答1:

That's impossible. Your code example isn't the same as the code that produced that error.

Perhaps you had time.sleep(..) instead of sleep(..). You have done from time import sleep. To use the time.sleep(..) form you must import time



回答2:

Apologies for the necropost but I ran into this problem too though in a slightly different way.

I was running time.time() with mod_python under Apache and Python . If I attempted to load the page with time.time() on it, it would fail complaining that "global name 'time' is not defined". However, if I ssh'd into my webserver and ran the exact same method from the command line, it would work.

In the end, restarting the Apache2 service fixed the issue. I'm not sure why this helped. I guess the module was unloaded at some point and then wouldn't reload, despite the import time command.

It's strange and a bit mysterious. Sorry I never hunted down the actual cause but hopefully this helps out the next person.



回答3:

What Jerub said. I ran your exact code and it worked:

>>> import silly >>> silly.knights_of_ni() We are the knights who say 'ni'. Ni! Ni! Ni! Ni! Ni! Ni! 


回答4:

I have got the answer! I had the same problem, just restart your Canopy. I am not that good at python or understanding computers, but my program thought i still called 'time' somewhere, even though it was not in the code.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!