在阿里云主机(ubuntu)上安装python3.6和scrapy

之前一直是用python2.7做开发的,近期想将工作迁移到python3上去,毕竟还是要拥抱变化的,python3大势所趋。

我在阿里云的主机安装的系统是ubuntu 16.04,上面的python3版本默认为python3.5。但有不少用起来相当爽的特性是python3.6才支持的,就打算将python3.5换成3.6。在成功安装python3.6后,准备安装scrapy时,又是一大波坑袭来。

找资料,踩坑,再找资料,再踩坑……最后总结过程如下:

转载请注明出处:https://blog.csdn.net/aaronjny/article/details/83658681

1.在阿里云主机上安装python3.6

添加软件源:

sudo add-apt-repository ppa:jonathonf/python-3.6

更新源

sudo apt-get update

安装python3.6

sudo apt-get install python3.6

在终端里输入python3.6,看是否成功安装:

root@spider-1:~# python3.6
Python 3.6.7 (default, Oct 25 2018, 09:16:13) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

成功进入,安装成功了。但是这个时候,python3还是指向原来的python3.5的,我们需要进行修改:

sudo rm -rf /usr/bin/python3
sudo ln -s /usr/bin/python3.6 /usr/bin/python3

然后,我们输入python3,就可以正常进入3.6环境了。

root@spider-1:~# python3
Python 3.6.7 (default, Oct 25 2018, 09:16:13) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

2.安装pip3并进行更新

如果机器上没有安装pip3的话,就先进行安装:

sudo apt-get install python3-pip

安装成功后,pip3版本应该是8.1.1的,可以通过输入pip3 --version来查看。

使用pip3安装第三方包时,能够看到pip的升级提示——你的pip版本太老咯,快升级一下吧!

You are using pip version 8.1.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

另外,在安装scrapy的依赖cryptography时,安装失败了,怀疑是pip版本的问题。

行吧,我们输入pip install --upgrade pip升级一下:

Collecting pip
  Using cached pip-18.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

excuse me???

我不是已经升级了吗??

为什么还是8.1.1??

我还不信邪的又试了几遍,都是一样的结果。好吧,没办法了,搜搜看吧。最后找到了解决方案(参考的文档都会在博文末尾放上对应名称及链接,想看的话可以直接翻到结尾):

先使wget下载安装脚本:

wget https://bootstrap.pypa.io/get-pip.py

然后进行安装:

sudo python get-pip.py

安装完成后,再看一下版本:

root@spider-1:~# pip3 --version
pip 18.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

ok,安装成功了。

尝试再次使用pip3安装cryptography,没有出现问题,成功安装。

3.安装python3.6-dev

这个时候去安装scrapy,还是会失败。twisted这个依赖无法正常安装。

查了很多资料,包括官方文档,都说先安装python3-dev后,twisted就可以正常安装了。然而,并没有什么卵用,我试了很多次依然不行。

没办法了,接着搜吧。最终发现:

使用python3-dev安装的是3.5版本,而我们需要安装3.6版本的。

好吧,装装看吧:

sudo apt-get install python3.6-dev

安装成功后,在安装scrapy或twisted就都没问题了。

4.总结

总的来说,不管上面乱七八糟的,如果你想在阿里云ubuntu 16.04主机上安装python3.6和scrapy的话,需要做这几件事:

  • 安装python3.6并替换快捷方式
  • 安装pip3并将它升到最新版本
  • 安装python3.6-dev
  • 直接安装scrapy即可,它的依赖将被自动安装(不需要手动去装twisted和cryptography等依赖)

好了,一大堆坑,踩坑完毕!

参考文档

ubuntu16.04 阿里服务器安装python3.6

解决pip 8.1.1 无法升级到 pip 9.0.1

fatal error: Python.h: 没有那个文件或目录

    原文作者:笔墨留年
    原文地址: https://blog.csdn.net/aaronjny/article/details/83658681
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞