簡體   English   中英

無法在ARM處理器上運行Python3 HTTPServer

[英]Cannot run Python3 HTTPServer on ARM processor

我最近購買了具有ARM CPU的單板計算機Odroid XU4 我嘗試在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__

誰能解釋我為什么會收到此錯誤? 為了給您提供信息,我附上了有關OS和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.
>>>

文檔看來, TCPServer的基類的contextmanager協議( with ... )形式(因此TCPServer已添加在python3.6中。在python3.5中不可用)

在版本3.6中更改:添加了對上下文管理器協議的支持。 退出上下文管理器等效於調用server_close()

幸運的是,您可以使用前面的方法。 這大致意味着要使用with語句並將其轉換為簡單的任務:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM