为什么该程序在命令行中运行但没有在IDLE中运行?

时间:2019-03-29 05:04:37

标签: python-3.x python-idle reddit

代码使用Reddit包装器praw 这是代码的一部分:

    import praw
    from praw.models import MoreComments
    username = 'myusername'
    userAgent = 'MyAppName/0.1 by ' + username
    clientId = 'myclientID'
    clientSecret = 'myclientSecret'
    threadId = input('Enter your thread id: ');
    reddit = praw.Reddit(user_agent=userAgent, client_id=clientId, client_secret=clientSecret)
    submission = reddit.submission(id=threadId)
    subredditName = submission.subreddit
    subredditName = str(subredditName)
    act = input('type in here what you want to see: ')
    comment_queue = submission.comments[:]  # Seed with top-level
    submission.comments.replace_more(limit=None)

    def dialogues():
     for comment in submission.comments.list():
        if comment.body.count('"')>7 or comment.body.count('\n')>3:
            print(comment.body + '\n \n \n')  

    def maxLen():
     res = 'abc'
     for comment in submission.comments.list():
        if len(comment.body)>len(res):
            res=comment.body
     print(res)
     #http://code.activestate.com/recipes/269708-some-python-style-switches/
     eval('%s()'%act)

由于我是Python的新手,并且实际上并没有真正的编程知识,我很惊讶地看到命令行中的每一位代码都可以正常工作,但是我在第一行的IDLE中收到一条错误,提示说ModuleNotFoundError:No module名为“ praw”

2 个答案:

答案 0 :(得分:0)

您必须使用命令安装praw

pip install praw会在环境中安装最新版本的praw

答案 1 :(得分:0)

必须发生的是,您的cmd和闲置正在使用不同的python解释器,即,您有两个不同的模块可以执行python代码。它可以是python的不同版本,也可以是相同版本,但安装在计算机中的不同位置。

现在我们将两个解释器称为PyA和PyB。如果您在PyA中有pip install praw,则只有PyA能够从该库中导入和执行功能。 PyB仍然不知道praw是什么意思。

您所能做的就是为PyB安装库,一切都会顺利进行。