Python新手,statsout在Python 2.7中不工作

0 投票
3 回答
1095 浏览
提问于 2025-04-16 12:28

我刚开始学习Python。现在我在Python 2.7上测试这段代码,但出现了错误。

import statsout

def output(data, format="text"):
    output_function = getattr(statsout, "output_%s" % format, statsout.output_text)
    return output_function(data)

错误信息:

Traceback (most recent call last):
  File "C:\Documents and Settings\anlopes\workspace\test\src\test.py", line 1, in <module>
    import statsout
ImportError: No module named statsout

有人能告诉我哪里出问题了吗?

最好的祝福,

3 个回答

0

这是一个关于PYTHONPATH的问题。通常,你当前工作目录里的文件会自动被包含在路径中。

你是怎么运行这个的呢?

我猜你可能是这样做的:

cd C:\Documents And Settings\anlopes\workspaces\test\src
C:\Python27\python.exe test.py

假设你有一个文件:C:\Documents And Settings\anlopes\workspaces\test\src\test.py,那么你还需要在这个目录下有C:\Documents And Settings\anlopes\workspaces\test\src\statsout.py,或者你需要修改你的PYTHONPATH,把statsout模块的位置加进去。

1

《Dive into Python》这本书里的所有示例,包括 statsout.py,都可以在这本书的网站上下载。现在的直接下载链接是这里

"""Prototype multi-output module

This program is part of "Dive Into Python", a free Python book for
experienced programmers.  Visit http://diveintopython.org/ for the
latest version.
"""

__author__ = "Mark Pilgrim (mark@diveintopython.org)"
__version__ = "$Revision: 1.2 $"
__date__ = "$Date: 2004/05/05 21:57:19 $"
__copyright__ = "Copyright (c) 2004 Mark Pilgrim"
__license__ = "Python"

def statsout_html(data):
    """Format data as HTML"""

def statsout_xml(data):
    """Format data as XML"""

def statsout_text(data):
    """Format data in plain text"""
10

你的例子来自《Dive Into Python》,而 statsout 是一个虚构的模块,用来做示范。引用自 http://diveintopython.net/power_of_introspection/getattr.html :

比如,我们可以想象一个程序,它可以以 HTML、XML 和纯文本格式打印网站统计信息。输出格式可以在命令行中指定,或者存储在配置文件里。一个 statsout 模块定义了三个函数,分别是 output_htmloutput_xmloutput_text。然后主程序定义了一个输出函数,像这样:

这里的关键字是“比如,我们可以想象” :) 其实,再读一遍我也能理解这一段很容易被误解...

撰写回答