【问题标题】:random.randint() won't run in Terminal but works in IDLErandom.randint() 不会在终端中运行,但可以在 IDLE 中运行
【发布时间】:2017-07-30 01:36:48
【问题描述】:

我有一个要在终端中运行的脚本,但它的一部分在 IDLE 中运行良好,并且在终端中运行时会在没有任何解释的情况下终止脚本。我发现的大多数关于类似问题的帖子似乎来自使用 Python 2 的终端和使用 Python 3 的 IDLE,但我的脚本在 IDLE 中适用于 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%(一个核)。为什么需要更多的功率?

【问题讨论】:

    标签: terminal raspberry-pi python-idle


    【解决方案1】:

    我发现了问题!尽管我的脚本名称没有冲突,但我有一个名为“random.py”的不同脚本(我早就忘记了)。我的脚本在 CLI 中运行时尝试导入该脚本,但 IDLE 导入了正确的脚本。确保您从不使用内置模块的名称作为脚本名称,即使您没有在当前脚本中使用该模块。以后会出问题的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 2021-02-17
      • 2013-01-15
      • 2021-04-12
      • 1970-01-01
      相关资源
      最近更新 更多