openwrt-OpenWrt上运行python3的bottle模块运行出错

问题描述

OpenWrt上运行python3的bottle模块运行出错

python3的相关模块都已安装,相关python代码如下:

 # -*- coding: utf-8 -*-
from bottle import Bottle, run

app=Bottle()

@app.route('/hello')
def hello():
    return '<strong>Hello world!</strong>'

run(app,host='localhost',port=81)

以上代码运行正确,但是我想在局域网下访问,把host改为局域网ip192.168.1.1后运行结果如下:

 Bottle v0.12.8 server starting up (using WSGIRefServer())...
Listening on http://192.168.1.1:81/
Hit Ctrl-C to quit.

Traceback (most recent call last):
  File "bottle_test.py", line 10, in <module>
    run(app,host='192.168.1.1',port=81)
  File "/usr/lib/python3.4/bottle.py", line 3117, in run
    server.run(app)
  File "/usr/lib/python3.4/bottle.py", line 2771, in run
    srv = make_server(self.host, self.port, app, server_cls, handler_cls)
  File "/usr/lib/python3.4/wsgiref/simple_server.py", line 153, in make_server
    server = server_class((host, port), handler_class)
  File "/usr/lib/python3.4/socketserver.py", line 430, in __init__
    self.server_bind()
  File "/usr/lib/python3.4/wsgiref/simple_server.py", line 50, in server_bind
    HTTPServer.server_bind(self)
  File "/usr/lib/python3.4/http/server.py", line 135, in server_bind
    self.server_name = socket.getfqdn(host)
  File "/usr/lib/python3.4/socket.py", line 463, in getfqdn
    hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte

我怀疑是编码问题,但是确认python中sys编码为utf-8,该py文件编码也是utf-8。求助!

解决方案

python3之使用exec运行模块文件

时间: 2024-08-31 11:46:13

openwrt-OpenWrt上运行python3的bottle模块运行出错的相关文章

c++-服务运行MSVCR90.dll故障模块

问题描述 服务运行MSVCR90.dll故障模块 用VS2008编写的C++代码,在32位的win7上用gSoap测试运行没有问题,但是部署到64位 的windows server 2008 上,真实环境运行出现MSVCR90.dll故障模块,请问有谁知道出现这种问题可能有什么造成. 解决方案 安装下visual c++ 2008 redistributable package 解决方案二: 需要带上vc对应的dll,目标机器上没有安装这个版本devc runtime. 解决方案三: 你需要在S

iis-原本经过IIS编译后的项目,把这个项目考到另一台电脑上。怎么通过vs直接运行呢?

问题描述 原本经过IIS编译后的项目,把这个项目考到另一台电脑上.怎么通过vs直接运行呢? 原本经过IIS编译后的项目,把这个项目考到另一台电脑上.怎么通过vs直接运行呢?

android studio-as上用build variant release方式运行程序报错

问题描述 as上用build variant release方式运行程序报错 android studio在build.gradle上配置好签名文件,然后build variant release方式运行程序报错,可是我用过可视化界面上打包签名程序,然后指定签名文件,输入密码啊结果是能出来一个release包,但是就是用过variant-release的方式直接运行就报错,卡了好久,有哪位大神帮下,错误见图. 解决方案 mongoDB报错Cannot find module '../build/

从svn上下载的android项目无法运行,ClassNotFound

问题描述 从svn上下载的android项目无法运行,ClassNotFound 同事那就可以运行,自已一运行就报Class Not Found 异常,检查过类名包名正常,build path也设置正确 解决方案 clean一下重新编译试试 解决方案二: AndroidManifest注册了没,clean一下,用android tools-->lint 检查一下. 解决方案三: clean一下重新编译试试 再看看是 那个文件没找到 解决方案四: sdk版本设置是否正确?

python-Solaris10上安装Python3.5的make问题

问题描述 Solaris10上安装Python3.5的make问题 Solaris10上安装Python3.5,./configure通过,但在make的时候出现 ld: fatal: symbol referencing errors. No output written to Programs/_freeze_importlib collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command fa

引用 返回值-看到一道题说以下s的引用非法,但在vs2012上试验后却可以准确运行,求解释

问题描述 看到一道题说以下s的引用非法,但在vs2012上试验后却可以准确运行,求解释 #include #include #include using namespace std; string foo() { //string t = "asfds"; return "asfds"; //return t; } void bar(string &s) { cout << s << endl; } int main() { bar(

应用-看到一道题说以下s的引用非法,但在vs2012上试验后却可以准确运行,求解释

问题描述 看到一道题说以下s的引用非法,但在vs2012上试验后却可以准确运行,求解释 #include #include #include using namespace std; string foo() { //string t = "asfds"; return "asfds"; //return t; } void bar(string &s) { cout << s << endl; } int main() { bar(

RadUpload.Net2上传大文件,本地运行上传可以,但是部署到IIS中不行

问题描述 RadUpload.Net2上传大文件,本地运行上传可以,但是部署到IIS中不行 解决方案 解决方案二:应该是权限问题,IIS是无权访问WINDOWS目录的解决方案三:好像不是这个问题,我设置权限后还是报这个错解决方案四:引用1楼rtdb的回复: 应该是权限问题,IIS是无权访问WINDOWS目录的 好像不是这个问题,我设置权限后还是报这个错

asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被

问题描述 asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被搜索引擎收入,也不大敢用?除此以为啊有啥方法了?难道只能用asp里面的方法把web按钮去掉,还成inputbutton?然后用Iframe???