我有一个脚本,我试图在终端中运行,但它的一部分在IDLE中完美运行,并且在终端中运行时杀死脚本没有任何解释。我发现的关于类似问题的大多数帖子似乎来自使用Python 2的终端和使用Python 3的IDLE,但是我的脚本在IDLE中用于BOTH Python 2和3 大多数脚本运行正常,但调用此函数会使其失效。
import random
import time
def gen_rndNum():
rndNum = random.randint(1,10)
print ("Your random number is:")
print (rndNum)
while 1:
print ('Waiting...')
if some_condition: # I know some_condition is not defined. It is a placeholder for the actual trigger
print ("Trigger Detected!")
gen_rndNum()
else:
#do some more stuff
time.sleep(.25) #Don't use 100% of CPU
当我在IDLE中运行此代码时,我得到了我期望的结果:
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
然后当我按下按钮
Waiting...
Trigger Detected!
Your random number is:
2
当我在终端中运行此代码时,我得到:
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
Waiting...
然后当我按下按钮
Waiting...
Trigger Detected!
然后什么都没有。它就停止了。 我从Raspberry Pi 3运行它。我用
调用脚本python /home/pi/modules/useButtons.py
一个有趣的旁注(我还想输入,如果可能的话)是,当在IDLE中运行时,此脚本占用大约11%的可用CPU功率,但在终端中,它需要25%(整个一个核心)。为什么需要更多电力?
答案 0 :(得分:0)
我发现了这个问题!虽然我的脚本没有相互矛盾的名称,但我有一个不同的脚本(我早就忘记了一个),名为" random.py"。我的脚本试图在CLI中运行时导入,但IDLE导入了正确的脚本。即使您不在当前脚本中使用该模块,也请确保永远不要使用脚本名称的内置模块名称。它会在以后引起问题!