Python中ModuleNotFoundError: No module named 'SocketServer'问题解决

引言: Flask是Python中鼎鼎大名的web框架,今天试手了一下,可是碰到了一个问题,一波三折方才解决.....


1.  背景介绍

   Flask Web框架, Python 3.6, 开发一个简单的页面

2.   页面的代码以及碰到的错误:

  页面代码如下;

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(debug=True)
  碰到的错误如下:
D:\Dev\pythonspace\indexdata>python indexdata.py
Traceback (most recent call last):
  File "D:\Program Files\python\lib\site-packages\werkzeug\serving.py", line 65, in <module>
    from SocketServer import ThreadingMixIn, ForkingMixIn
ModuleNotFoundError: No module named 'SocketServer'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "indexdata.py", line 12, in <module>
    app.run(debug=True)
  File "D:\Program Files\python\lib\site-packages\flask\app.py", line 758, in run
    from werkzeug.serving import run_simple
  File "D:\Program Files\python\lib\site-packages\werkzeug\serving.py", line 68, in <module>
    from socketserver import ThreadingMixIn, ForkingMixIn
ImportError: cannot import name 'ForkingMixIn'
3.  问题的分析

    从错误信息可以看到,直接的原因和问题是SocketServer的module未安装。 ImportError中的ForkingMixin的类是属于SocketServer,所以问题就应该在SocketServer中。  按照这个思路来进行分析和查找:

     经过一番查找之后,pythohn2 下面是使用SocketServer, Python3 下是使用socketserver.

    由于Python版本为3, 执行上述命令如下:  

D:\Dev\pythonspace\indexdata>pip install socketserver
Collecting SocketServer
  Could not find a version that satisfies the requirement SocketServer (from versions: )
No matching distribution found for SocketServer
  发生了什么情况,为什么找不到呢?socketserver应该在的。

4.  重新分析

    定位Python的安装目录,查找socketserver.py, 在python_home\Lib下找到了对应的socketserver.py文件,故这个包其实应该是按照好了,所以应该转换方向重新分析问题,于是把焦点重新定位于flask本身,也许是缺少其他类似包吧:

    故经过一番查找,找到类似的问题解决方案:

    >>pip install -U werkzeug

  >> pip install gunicorn

 

 5. 启动服务,验证问题

    >> python indexdata.py

   

6.  总结

   问题解决之道,就是大胆推理,小心求证,最终解决问题。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值