资讯专栏INFORMATION COLUMN

Centos安装python3与scapy模块的问题及解决方法

89542767 / 722人阅读

  Centos的版本还是比较的多的,那么,我们要怎么在这个服务器上,去进行安装python3呢,具体的方法是什么呢?如果安装遇到问题的话,该怎么去进行解决呢?下面就给详细解答下。


  一、CentOS安装Python3


  centos7自带版本是python2.7


  如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/


  1、先查看系统python的位置在哪儿

</>复制代码

  1.   whereis python

01.png

  python2.7默认安装是在/usr/bin目录中,切换到/usr/bin/


</>复制代码

  1.   cd/usr/bin/
  2.   ll python*


  从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后删除python链接,将python3指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。

02.png

  2、下载python3的包之前,要先安装相关的依赖包,用于下载编译python3:

</>复制代码

  1.   yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make


  运行了以上命令以后,就安装了编译python3所用到的相关依赖


  3、默认的centos7是没有安装pip,先添加epel扩展源

</>复制代码

  1.   yum-y install epel-release


  4、安装pip

</>复制代码

  1.   pip install wget


  5、用pip装wget

</>复制代码

  1.   pip install wget


  6、用wget下载python3的源码包,或者自己先下载好,上传到服务器再安装,如果网络快可以直接安装

</>复制代码

  1.   wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz


  7、编译python3源码包,解压


</>复制代码

  1.   xz-d Python-3.9.6.tar.xz
  2.   tar-xf Python-3.9.6.tar


  8、进入解压后的目录,依次执行下面命令进行手动编译


</>复制代码

  1.   cd Python-3.9.6
  2.   ./configure prefix=/usr/local/python3

</>复制代码

  1.   make&&make install
  2.   cd Python-3.9.6
  3.   ./configure prefix=/usr/local/python3
  4.   make&&make install


  注意:


  安装过程中报错:


  ModuleNotFoundError:No module named'_ctypes'


  make:***[install]Error 1

03.png

  问题原因:


  python3中有个内置模块叫ctypes,它是python3的外部函数库模块,提供了兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用centos7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。


  由于在centos7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError:No module named‘_ctypes’"的错误。


  解决方法:


</>复制代码

  1.    yum install-y libffi-devel
  2.   #如果没有yum源,可下载包上传
  3.   https://vault.centos.org/


  然后重新./configure...make...make install


  9、安装依赖zlib、zlib-deve


</>复制代码

  1.   yum install zlib zlib
  2.   yum install zlib zlib-devel

  10、最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录


  11、添加软链接,将原来的链接备份

</>复制代码

  1.   mv/usr/bin/python/usr/bin/python.bak


  12、添加python3的软链接

</>复制代码

  1.   ln-s/usr/local/python3/bin/python3.9/usr/bin/python3


  13、测试是否安装成功了

</>复制代码

  1.   python3-V


  14、更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

</>复制代码

  1.   vi/usr/bin/yum


  15、把第一行的#!/usr/bin/python修改为如下

</>复制代码

  1.   #!/usr/bin/python2


  16、还有一个地方也需要修改

</>复制代码

  1.   vi/usr/libexec/urlgrabber-ext-down


  17、把第一行的#!/usr/bin/python修改如下

</>复制代码

  1.   #!/usr/bin/python2


  18、启动python2

</>复制代码

  1.   python2


  19、启动python3

</>复制代码

  1.   python3


  二、安装scapy模块


  Scapy是一个强大的基于Python的交互式包操作程序和库。它能够伪造或解码大量协议的数据包,在有线上发送它们,捕获它们,使用pcapfile存储或读取数据包,匹配请求和答复,等等。它被设计为通过使用可用的默认值来允许快速的数据包原型化。它可以轻松地处理大多数经典任务,如扫描、跟踪、探测、单元测试、攻击或网络发现(它可以替换hping,85%nmap,arpspoof,arp-sk,arping,tcpdump,wireshark,p0f等等)。它还能很好地执行大多数其他工具无法处理的许多其他特定任务,如发送无效帧、注入您自己的802.11帧、组合技术(VLAN跳变+ARP缓存中毒、WEP保护信道上的VoIP解码等)。


  1、yum安装相关依赖程序

</>复制代码

  1.   yum-y install tcpdump graphviz ImageMagick


  2、到GitHub上下载安装包,进行编译安装


</>复制代码

  1.   #https://github.com/secdev/scapy
  2.   cd scapy-master/
  3.   python3 setup.py install


  3、创建软链接


</>复制代码

  1.   ln-s/usr/local/python3/bin/python3.7/usr/bin/python
  2.   ln-s/usr/local/python3/bin/pip3.7/usr/bin/pip
  3.   ln-s/usr/local/python3/bin/scapy/usr/bin/scapy


  4、scapy生成动态路由轨迹图代码示例


</>复制代码

  1.   #!/usr/bin/python3
  2.   #-*-coding:UTF-8-*-
  3.   import os,sys,time,subprocess
  4.   import logging,warnings
  5.   warnings.filterwarnings("ignore",category=DeprecationWarning)#屏蔽scapy无用警告信息
  6.   logging.getLogger("scapy.runtime").setLevel(logging.ERROR)#屏蔽模块IPV6多余警告
  7.   from scapy.all import traceroute
  8.   domains=input('请输入IP地址或域名地址:')
  9.   target=domains.split('')
  10.   dport=[80]#扫描的端口列表
  11.   if len(target)&gt;=1 and target[0]!='':
  12.   res,unans=traceroute(target,dport=dport,retry=2)#启动路由跟踪
  13.   res.graph(target="&gt;test.svg")#生成svg矢量图形
  14.   time.sleep(1)
  15.   subprocess.Popen("/usr/bin/convert test.svg test.png",shell=True)
  16.   #svg转png格式
  17.   else:
  18.   print('IP/domain number of errors,exit')

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来更多的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128181.html

相关文章

  • CentOS 7 上安装并配置 Python 3.6 环境

    摘要:拖了很久没有更新,抱歉啦今天受邀写篇如何在上配置环境的文章。当前最新的默认安装的是,并且默认的官方源中不提供的安装包。在纯净的系统上安装环境主要有两种办法。依照个人习惯,我们先来看一下如何通过源码编译的方式安装并且配置虚拟环境。 拖了很久没有更新,抱歉啦~ 今天受邀写篇如何在 CentOS 7 上配置 Python 3 环境的文章。往常我都选择直接把我早年写的一篇文章源码编译Mongo...

    mj 评论0 收藏0
  • CentOS 7 下安装 Python3.7.1

    摘要:当前最新的默认安装的是,并且默认的官方源中不提供的安装包。最近需要在机器上装,需要或,我这边通过源码编译的方式安装。 当前最新的 CentOS 7.3 默认安装的是 Python 2 ,并且默认的官方 yum 源中不提供 Python 3 的安装包。最近需要在机器上装awscli,需要python2.6.5+或python3.3+,python3我这边通过源码编译的方式安装。我的机器版...

    XanaHopper 评论0 收藏0

发表评论

0条评论

89542767

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<