python安装pyspider停在result_worker starting…的问题

前言

最近使用python安装pyspider后,使用pyspider(all)命令启动一直停在result_worker starting…。
出现这个问题的主要原因是因为pyspider会监听一个网站,而Windows的防火墙默认给禁掉了。。。
下面给出解决方法。

1. 直接关闭防火墙(不推荐)

直接关闭防火墙的话,可能会导致安全问题,建议慎重考虑。
步骤为:

  1. 打开控制面板,查看方式选为小图标,然后点击"Windows defender 防火墙"
    在这里插入图片描述
  2. 点击左侧 “启用或关闭Windows Defender防火墙”
    在这里插入图片描述
  3. 全部关闭即可
    在这里插入图片描述

2. 在防火墙新建一条入站规则(推荐)

步骤为:

  1. 打开控制面板
  2. 查看方式选为小图标,然后点击"Windows defender 防火墙"
    在这里插入图片描述
  3. 点击高级设置
    在这里插入图片描述
  4. 新建一个入站规则
    在这里插入图片描述
  5. 选择程序
    在这里插入图片描述
  6. 这里的路径选择你安装了pyspider的python环境下的python.exe,我这里是用的anaconda的pyspider3602环境下的python.exe。在这里插入图片描述
  7. 允许连接
    在这里插入图片描述
  8. 全选,然后起个名称完成。
    在这里插入图片描述

3 测试一下

  1. 进入pyspider3602环境
    activate pyspider3602
    
  2. 运行pyspider或pyspider all命令,我这里用pyspider all。
    pyspider all
    
  3. 结果如下
    在这里插入图片描述
    在这里插入图片描述
    可以看到不再停到 result_worker exiting…这一步了,如果大家弄了还是没用,可以重启cmd试试,实在不行就重启电脑,反正这大概率就是防火墙的原因,上面我的似乎报了个错,但这都不是问题,就怕没错啊,对于一个计算机人员来说,这是最恐怖的事情了吧。

总结

以上就是pyspider停在 result_worker exiting…不报错问题的解决方法啦,顺便说一句pyspider3.6版本后就停止维护了,大家最好还是装3.6版本及之前的。最最最重要的一件事儿就是啥呢,如果按照上面的做了还是没变,可能是你的dsgidav太新了,先pip uninstall dsgidav卸载掉,再pip install dsgidav==2.4.1安装至这个版本。如果还是没反应,切记pyspider和pyspider all换着试一下,多试两遍

3.6版本大概率会报错cannot import name ‘DispatcherMiddleware’
这个就是werkzeug太新了,降至0.16.1,然后flask又需要这个模块的版本大>=2.0,所以flask也要降至1.1.4版本。
如果还是不行,果断点,直接换python版本,笔者这里用3.5.63.6.0成功了,3.5版本可能需要安装C++14的库,挺麻烦的。如果你用的anaconda,可以直接运行这个命令解决C++库问题:

conda install libpython m2w64-toolchain -c msys2

不过需要注意的是,以上命令仅适用于安装离线whl模块包,大家可以去这个网站找对应版本包:
https://pypi.tuna.tsinghua.edu.cn/simple/lxml/,最后一个路径就是包名哦。

ok,完工。最后认识一下吧,我是北迁,一名在编程之路上苦渡的大学生,hhh~~

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐