为什么程序在命令行运行但不在IDLE运行?

问题描述 投票:0回答:2

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

    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:没有名为'praw的模块“

python-3.x python-idle reddit
2个回答
0
投票

你必须使用该命令安装praw

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


0
投票

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

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

你可以做的是为PyB安装库,一切都会好的。

© www.soinside.com 2019 - 2024. All rights reserved.