【发布时间】:2026-01-06 05:30:01
【问题描述】:
我正在尝试使用 Web.py 创建一个网站,但它不允许我在端口 80 上打开一个创建套接字,但它适用于所有其他端口。
我已经转发了端口等等,所以这不是问题。
python main.py 80
但是当我这样做时,我得到了错误:
http://0.0.0.0:80/
Traceback (most recent call last):
File "main.py", line 43, in <module>
app.run()
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 311, in run
return wsgi.runwsgi(self.wsgifunc(*middleware))
File "/usr/local/lib/python2.7/dist-packages/web/wsgi.py", line 54, in runwsgi
return httpserver.runsimple(func, validip(listget(sys.argv, 1, '')))
File "/usr/local/lib/python2.7/dist-packages/web/httpserver.py", line 148, in runsimple
server.start()
File "/usr/local/lib/python2.7/dist-packages/web/wsgiserver/__init__.py", line 1753, in start
raise socket.error(msg)
socket.error: No socket could be created
到目前为止我的代码是:
import MySQLdb
import web
import hashlib as h
urls = (
'/', "index", "/register/?", "register", "/login/?", "login", "/thankyou/?", "thankyou"
)
app = web.application(urls, globals())
render = web.template.render("templates/")
db = web.database (dbn="mysql", user="root", pw="461408", db="realmd")
class index():
def GET(self):
return render.index()
class register():
def GET(self):
return render.register()
def POST(self):
i = web.input()
user = h.sha1(i.username).hexdigest()
pw = h.sha1(i.password).hexdigest()
n = db.insert("account", username=user, password=pw)
if __name__ == '__main__':
app.run()
有人可以帮忙吗?
【问题讨论】:
-
您是否有其他服务正在侦听端口 80?喜欢阿帕奇?
-
"...它适用于所有其他端口。"真的吗?
-
你试过81端口吗?可能是权限错误。在 Linux 上(至少),你需要是 root 才能在这样的低端口上监听。 (我认为)。
-
您使用的是什么操作系统?您还尝试了哪些其他端口?
-
所以你试过 65534 其他端口? ;)