网页.py类导入

2024-04-26 12:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的索引.py(位于/NetWeave_Custom文件夹中)

import web
import lib.html

web.config.debug = True

urls = (
    '/', 'index',
)

class index:
    def GET(self):
        markup = html.abstr()
        print markup.element

if __name__ == "__main__":
    app.run()

app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc()

然后这是我的html.py(位于/NetWeave_Custom/lib/中)

^{pr2}$

但是我得到了一个500内部服务器错误。谁能告诉我我做错了什么吗?我是新来的网页.py框架。谢谢!在

编辑:

通过上面的代码,我得到了一个错误: 重要错误:没有命名的模块库.html在

最终编辑:

工作代码如下:

import web
from lib import html

web.config.debug = True

urls = (
    '/', 'index',
)

class index:
    def GET(self):
        markup = html.abstr()
        return markup.element

if __name__ == "__main__":
    app = web.application(urls, globals(), autoreload=False)
    app.run()

application = app.wsgifunc()

然后这是我的html.py(位于/NetWeave_Custom/lib/中)

^{pr2}$

浏览器显示:“你好,世界” 因此,更改是在调用应用程序之前定义它(不太相关,但对严格意义上来说,它是必要的——如果没有这个,它确实工作得很好),返回标记.element而不是打印它,并在lib子目录中创建一个空白的__init__.py文件,这样lib就可以被视为一个模块(或包?)据我所知。在

谢谢!在


Tags: pyimportwebconfigappindexapplicationlib
2条回答

答案是双重的。我在lib子目录中没有__init__.py文件。另一个错误是我写了print而不是{}。。。哦!在

导入lib.html,但不要使用该全名。相反,您只引用html。在

如果出现导入错误,则找不到lib包;可能有两个错误之一:

  • 您应该使用import html,这也可以解决不正确的引用。

  • lib目录丢失了它的__init__.py文件(可以是空的)。该文件将使其成为一个包,并允许您导入它。然后将对html的引用更改为lib.html

    class index:
        def GET(self):
            markup = lib.html.abstr()
            print markup.element
    

    将import更改为:

    from lib import html
    

您还尝试在定义app之前运行它。将最后一行更改为:

if __name__ == "__main__":
    app = web.application(urls, globals(), autoreload=False)
    app.run()

最后但并非最不重要的是,您需要将NetWeave_Custom目录(完整的绝对路径)添加到PYTHONPATH;如果您使用的是mod_wsgi,请查看^{}指令。在

相关问题 更多 >