最近更新了宝塔到最新版本,然后发现多了一个python项目管理,于是乎就打算用这个新功能用作python的项目管理。首先第一个要安装的程序就是pyspider。
▌第一坑:版本不对
我使用的python版本为3.7,然后啥都不看就开始安装,结果进坑了。
Distributed architecture, Crawl Javascript pages, Python 2.{6,7}, 3.{3,4,5,6} support, etc…
按照官方说明,pyspider暂时是不支持3.6以上的python版本。所以唯一解决方法是将版本降低到3.6。
▌第二坑:pycurl版本不对
因为宝塔的基于python2.7的,然后你在其”python项目管理“下使用python3.6版本安装pyspider,运行的时候会出现以下错误
▌错误
ImportError: pycurl: libcurl link-time ssl backend (nss) is different from compile-time ssl backend (none/other)
▌解决方法
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=nss
pip install --compile --install-option="--with-nss" --no-cache-dir pycurl
▌第三坑:wsgidav版本不对
wsgidav 发布了3.X版本,默认安装了。我们改成2.X的就好了。如果在没有修正的情况下运行,会出现以下错误:
- Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.
### 解决方法
pip uninstall wsgidav
pip install wsgidav==2.4.1
▌安装过程
▌准备文件
首先在root下新建一个目录pyspider
, 然后新建两个文件requirements.txt
和config.json
。
- requirements.txt是用于安装pyspider
- config.json是用于配置密码
###添加python项目
直接确定就可以了。 然后你会发现运行不了,因为文章开头出现的一系列错误。这时候我们需要在SSH上运行以下命令进入虚拟环境:
在命令行输入 source 项目路径/项目名_venv/bin/activate
如:source /root/pyspider/pyspider_venv/bin/activate
然后参考上面第二坑的解决方法去解决pycurl的版本问题。
然后参考上面第三坑的解决方法去解决wsgidav的版本问题。
▌设置Supervisor
最后我们需要使用Supervisor来监测pyspider运行,顺带通过config.json来设置密码,以防止无故停止运行。
参考文章:
https://gist.github.com/ifduyue/ccc644f146657ccb9e60f0af676f1923
https://blog.csdn.net/u011451186/article/details/88222328
https://medium.com/@bindaguo/pyspider-介紹與安裝篇-bbe2705c1ad2