2016-08-29 77 views
18

我正在嘗試使用Python 3.6運行基本Flask應用程序。但是,我得到一個ImportError: cannot import name 'ForkingMixIn'。使用Python 2.7或3.5運行時,我不會收到此錯誤。我如何使用Python 3.6運行Flask?在Python 3.6中運行Flask dev服務器引發SocketServer和ForkingMixIn的ImportError

from flask import Flask 

app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello, World!" 
Traceback (most recent call last): 
    File "C:\Python36\lib\site-packages\werkzeug\serving.py", line 65, in <module> 
    from SocketServer import ThreadingMixIn, ForkingMixIn 
ImportError: No module named 'SocketServer' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File ".\fsk.py", line 9, in <module> 
    app.run() 
    File "C:\Python36\lib\site-packages\flask\app.py", line 828, in run 
    from werkzeug.serving import run_simple 
    File "C:\Python36\lib\site-packages\werkzeug\serving.py", line 68, in <module> 
    from socketserver import ThreadingMixIn, ForkingMixIn 
ImportError: cannot import name 'ForkingMixIn' 

回答

28

這被指定爲WERKZEUG 0.11.15的。確保你已經安裝了最新版本的Werkzeug。 pip install -U werkzeug


這是一個已知問題,在Python 3.6的預期爲reported to Werkzeug。在這個或其他補丁被合併和發佈之前,Werkzeug的開發服務器將不能在Python 3.6上運行。

檢查OS可以在導入ForkingMixIn因爲Python 3.6將不再定義,當它不可操作系統(python/[email protected])和ImportError: cannot import name 'ForkingMixIn'上就會發生前叉子。

與此同時,您可以使用外部WSGI服務器(如Gunicorn)運行您的應用程序。

pip install gunicorn 
gunicorn my_app:app 

如果你需要在頁面調試器(只要你只用一個工人跑Gunicorn)你可以用在debug middleware您的應用程序。

相關問題