CentOS搭建Scrapy项目踩坑经历

8 篇文章 0 订阅
2 篇文章 0 订阅

最近心血来潮想在CentOS上整一个scrapy爬虫项目,经过一番安装后,也提示成功安装后,正当要利用脚手架创建爬虫项目是,居然没创建成功:

[root@localhost Spider]# scrapy startproject jobs
Scrapy 2.0.1 requires Python 3.5

最初的想法就是去更改python默认版本,操作如下:
查看python安装路径:

[root@localhost usr]# python2
Python 2.7.5 (default, Aug  7 2019, 00:51:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python2.7/site-packages/meld3-1.0.2-py2.7.egg', '/usr/lib/python2.7/site-packages/gunicorn-19.9.0-py2.7.egg', '/usr/lib/python2.7/site-packages/supervisor-3.3.5-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']

移除python2的软连接:
1.linux下软链接存放位置

cd /usr/bin     
  1. 查看python软链接版本
ls -al python      
  1. 删除 软链接
rm python      或者        rm -rf /usr/bin/python     # 指定路径 删除
[root@localhost bin]# rm python
rm:是否删除符号链接 "python"?y
[root@localhost bin]# rm python

创建软连接:
ln -s /usr/local/Python-3.6/bin/python3.6 /usr/bin/python

成功更换:

[root@localhost Spider]# python
ActivePython 3.6.6.3606 (ActiveState Software Inc.) based on
Python 3.6.6 (default, Dec 19 2018, 00:11:02) 
[GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

再次创建项目,我滴乖乖,还是提示一样的错误!!
看来得放大招解决该问题了,那就是创建个python3的独立虚拟环境,然后安装scrapy

python3 -m venv venv #创建虚拟环境
#并进入虚拟环境 然后再安装scrapy
pip install scrapy
(venv) [root@localhost Spider]# python
ActivePython 3.6.6.3606 (ActiveState Software Inc.) based on
Python 3.6.6 (default, Dec 19 2018, 00:11:02) 
[GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scrapy
>>> 

终于O了,然后还要安装chrome以及驱动。用yum安装,居然又毫不意外的给我出了意外。

(venv) [root@localhost Spider]# yum
-bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 权限不够

由于我我python的软连接改为python3.6,这会导致yum安装出错,因为yum的安装是基于python2的.
解决方法:
方法一:手动打开yum文件,由于旧版的头部默认为python解释器,一旦你的python软连接改外python3.x,yum就会指向python3.x,而语法却是python2.x,所以会导致yum无法使用,会报解释器出错!!!粗暴的方式就是打开yum文件把头部的python直接指定对应2.x版本即可,操作如下:

# python --version查看python 版本
# whereis python 查看python文件
[root@localhost python]# whereis python
python: /usr/bin/python2.7-config /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
centos6.8基本底层python是python2.6 centos7是2.7,我的是centos7,默认版本为python2.7
解决办法:
修改yum文件
#vi /usr/bin/yum#!/usr/bin/python 修改为  #!/usr/bin/python2.7

以上方式就能解决yum解释器出错的问题!!!

如果又安装了python其他版本,然后按网上所说改了bash/profile,最后出现:

-bash: /usr/bin/yum: /usr/bin/python2.7: bad interpreter: No such file

很明显链接混乱找不到python2.7连接了, 又按照不靠谱的重装yum方法,yum彻底崩了
最后找到补救方法,只有两行代码。
方法二:

$ rpm -qa | grep python- | grep 2.6
$  sudo rpm -ivh --force --nodeps ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.5/x86_64/updates/fastbugs/python-2.6.6-52.el6.x86_64.rpm

解决问题,yum可以使用,原理估计是python回滚到默认的2.7。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值