2016-08-29 28 views
18

Tôi đang cố chạy một ứng dụng Flask cơ bản bằng Python 3.6. Tuy nhiên, tôi nhận được ImportError: cannot import name 'ForkingMixIn'. Tôi không gặp lỗi này khi chạy với Python 2.7 hoặc 3.5. Làm thế nào tôi có thể chạy Flask với Python 3.6?Chạy máy chủ Flask dev trong Python 3.6 tăng ImportError cho SocketServer và ForkingMixIn

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' 

Trả lời

28

này được cố định như của Werkzeug 0.11.15. Đảm bảo bạn đã cài đặt phiên bản Werkzeug mới nhất. pip install -U werkzeug.


Đây là vấn đề đã biết là reported to Werkzeug với dự đoán của Python 3.6. Cho đến khi đó hoặc một bản vá khác được sáp nhập và phát hành, máy chủ dev của Werkzeug sẽ không chạy trên Python 3.6.

Kiểm tra nếu hệ điều hành có thể ngã ba trước khi nhập ForkingMixIn từ Python 3.6 sẽ không còn xác định rằng khi nó không có sẵn trên hệ điều hành (python/[email protected]) và ImportError: cannot import name 'ForkingMixIn' sẽ xảy ra.

Đồng thời, bạn có thể chạy ứng dụng của mình với máy chủ WSGI bên ngoài như Gunicorn.

pip install gunicorn 
gunicorn my_app:app 

Nếu bạn cần trình gỡ lỗi trong trang (miễn là bạn chỉ chạy Gunicorn với một công nhân).

Các vấn đề liên quan