Python新手,statsout在Python 2.7中不工作
我刚开始学习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_html
、output_xml
和output_text
。然后主程序定义了一个输出函数,像这样:
这里的关键字是“比如,我们可以想象” :) 其实,再读一遍我也能理解这一段很容易被误解...