Python WEBPY/服务静态文件:';StaticApp对象没有属性';目录';

Python WEBPY/服务静态文件:';StaticApp对象没有属性';目录';,python,eclipse,web.py,Python,Eclipse,Web.py,我在web.py应用程序上提供文件时遇到一些问题: Python 3.7 web.py版本0.40_Dev1 Eclipse光子版本(4.8.0) app.py: import web render = web.template.render('templates/') urls = ( '/', 'index',) class index: def GET(self): return render.index() if __name__ == "__ma

我在web.py应用程序上提供文件时遇到一些问题: Python 3.7 web.py版本0.40_Dev1 Eclipse光子版本(4.8.0)

app.py:

import web

render = web.template.render('templates/')

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

class index:
    def GET(self):
        return render.index()

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()
模板/index.html:

<html>

    <h2>HELLO</h2>          <img src = "/static/image.png">

</html>
正在尝试:(在根目录下使用图像)


返回偶然的404错误(文件应该从/static-right提供?)

和到达:localhost/static

返回“未找到”

似乎告诉我从/static文件服务的文件是由web.py自动处理的?(或者我不明白)

无论如何:我无法在我的app.py中提供任何文件


有什么帮助吗?

您的代码很好,但似乎与python库有冲突

python 3.7中的http.server.SimpleHTTPRequestHandler中引入了“目录”。这是webpy的StaticApp继承自的类。但是,您的web.py编译版本似乎使用了较旧版本的SimpleHTTPRequestHandler,它没有定义
目录
。我不知道这是怎么发生的,尽管您提到您正在使用Eclipse,它(我猜)正在处理编译依赖项


我建议您清除已编译的.pyc/.pyo,然后再试一次。

我最近两天才开始学习Python,所以请原谅n00b中的任何问题

在同一个问题上挣扎了一个小时左右,对为什么似乎还没有解决方案感到困惑……我有点胡思乱想,似乎能让它工作起来,直到有更正式的人提供一个真正的解决方案

有两件事要做:

  • 我在中更改了
    server.py
    ‎⁨<代码>/⁨图书馆/⁨Frameworks/Python.framework/⁨版本/⁨3.7⁩/解放党/⁨蟒蛇3.7/⁨http⁩ 并将第820行修改如下:

    path=self.directory
    被修改为
    path=self.path

    虽然这似乎消除了
    StaticApp对象bla-bla
    错误,但在尝试加载静态内容时,我仍然有持续的
    404
    。这让我在互联网上找到了一个小帖子,它导致了以下内容

  • 我没有在PyCharm中点击
    Run
    来运行我的Python应用程序,而是在终端窗口中运行
    python3 controller.py
    ,其中
    controller.py
    是我的Python MVC控制器-而且很低,看这似乎是可行的

  • 我不知道为什么在终端上运行而不是PyCharm是有效的,但我想我还是把它放在这里


    希望有人能尽快解决这个问题,当你试图学习一门新语言时,这真是一首民谣

    Webpy未针对python 3.7进行更新。安装Python3.6.1为我解决了这个问题。它应该适用于任何python 3.6子版本

    有一个拉取请求正在等待合并到web.py中:

    从网站包中的webpy调整文件: web/httpserver.py

    加:

    之后:

    self.start_response = start_response
    

    现在我正在用web.py 0.40.dev1运行Python3.7.3,只是为了跟进;python3.6.7和web.py==0.40-dev1非常有魅力!
    <img src = "/image.png">
    
    self.directory = os.getcwd()
    
    self.start_response = start_response