无法在ARM处理器

时间:2017-09-25 01:54:23

标签: python python-3.x arm odroid

我最近购买了Odroid XU4,一台带有ARM CPU的单板计算机。我尝试在Python3上使用HTTTPServer运行一个简单的Web服务器。

import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

此代码在我的Mac计算机上运行良好。但是当我尝试在Odroid XU4上运行时,我收到了此错误消息。

$ python3 webserver.py
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    with socketserver.TCPServer(("", PORT), Handler) as httpd:
AttributeError: __exit__

任何人都可以解释为什么我收到此错误?为了您的信息,我附上了有关操作系统和Python解释器的信息。

$ uname -a
Linux odroid 4.9.44-54 #1 SMP PREEMPT Sun Aug 20 20:24:08 UTC 2017 armv7l armv7l armv7l GNU/Linu

$ python 
Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

1 个答案:

答案 0 :(得分:2)

the documentation开始,似乎with ...基类的上下文管理器协议(TCPServer)形式(因此TCPServer已添加到python3中。 6.这在python3.5中不可用

  

版本3.6中已更改:添加了对上下文管理器协议的支持。退出上下文管理器相当于调用server_close()

幸运的是,您可以使用以前的方法。这大致意味着将你的声明变成一个简单的任务:

httpd = socketserver.TCPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()