Centos安裝python3與scapy模塊的問題及解決方法
一、CentOS安裝Python3
centos7自帶版本是python2.7
如果要用的3.0以上的版本需要手動安裝,下載地址:https://www.python.org/ftp/python/
1、先查看系統(tǒng)python的位置在哪兒
whereis python
python2.7默認(rèn)安裝是在 /usr/bin目錄中,切換到/usr/bin/
cd /usr/bin/ ll python*
從下面的圖中我們可以看到,python指向的是python2,python2指向的是python2.7,因此我們可以裝個python3,然后刪除python鏈接,將python3指向python3,然后python2指向python2.7,那么兩個版本的python就能共存了。
2、下載python3的包之前,要先安裝相關(guān)的依賴包,用于下載編譯python3:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
運行了以上命令以后,就安裝了編譯python3所用到的相關(guān)依賴
3、默認(rèn)的centos7是沒有安裝pip,先添加epel擴(kuò)展源
yum -y install epel-release
4、安裝pip
pip install wget
5、用pip裝wget
pip install wget
6、用wget下載python3的源碼包,或者自己先下載好,上傳到服務(wù)器再安裝,如果網(wǎng)絡(luò)快可以直接安裝
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz
7、編譯python3源碼包,解壓
xz -d Python-3.9.6.tar.xz tar -xf Python-3.9.6.tar
8、進(jìn)入解壓后的目錄,依次執(zhí)行下面命令進(jìn)行手動編譯
cd Python-3.9.6 ./configure prefix=/usr/local/python3 make && make install
注意:
安裝過程中報錯:
ModuleNotFoundError: No module named '_ctypes'
make: *** [install] Error 1
問題原因:
python3中有個內(nèi)置模塊叫ctypes,它是python3的外部函數(shù)庫模塊,提供了兼容C語言的數(shù)據(jù)類型,并通過它調(diào)用Linux系統(tǒng)下的共享庫(Shared library),此模塊需要使用centos7系統(tǒng)中外部函數(shù)庫(Foreign function library)的開發(fā)鏈接庫(頭文件和鏈接庫)。
由于在centos7系統(tǒng)中沒有安裝外部函數(shù)庫(libffi)的開發(fā)鏈接庫軟件包,所以在安裝pip的時候就報了"ModuleNotFoundError: No module named ‘_ctypes’"的錯誤。
解決方法:
yum install -y libffi-devel # 如果沒有yum源,可下載包上傳 https://vault.centos.org/
然后重新./configure ... make ... make install
9、安裝依賴zlib、zlib-deve
yum install zlib zlib yum install zlib zlib-devel
10、最后沒提示出錯,就代表正確安裝了,在/usr/local/目錄下就會有python3目錄
11、添加軟鏈接,將原來的鏈接備份
mv /usr/bin/python /usr/bin/python.bak
12、添加python3的軟鏈接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
13、測試是否安裝成功了
python3 -V
14、更改yum配置,因為其要用到python2才能執(zhí)行,否則會導(dǎo)致yum不能正常使用
vi /usr/bin/yum
15、把第一行的#! /usr/bin/python 修改為如下
#! /usr/bin/python2
16、還有一個地方也需要修改
vi /usr/libexec/urlgrabber-ext-down
17、把第一行的#! /usr/bin/python 修改如下
#! /usr/bin/python2
18、啟動python2
python2
19、啟動python3
python3
二、安裝scapy模塊
Scapy是一個強(qiáng)大的基于Python的交互式包操作程序和庫。 它能夠偽造或解碼大量協(xié)議的數(shù)據(jù)包,在有線上發(fā)送它們,捕獲它們,使用pcapfile存儲或讀取數(shù)據(jù)包,匹配請求和答復(fù),等等。 它被設(shè)計為通過使用可用的默認(rèn)值來允許快速的數(shù)據(jù)包原型化。 它可以輕松地處理大多數(shù)經(jīng)典任務(wù),如掃描、跟蹤、探測、單元測試、攻擊或網(wǎng)絡(luò)發(fā)現(xiàn)(它可以替換hping,85%nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f等等)。它還能很好地執(zhí)行大多數(shù)其他工具無法處理的許多其他特定任務(wù),如發(fā)送無效幀、注入您自己的802.11幀、組合技術(shù)(VLAN跳變+ARP緩存中毒、WEP保護(hù)信道上的VoIP解碼等)。
1、yum安裝相關(guān)依賴程序
yum -y install tcpdump graphviz ImageMagick
2、到GitHub上下載安裝包,進(jìn)行編譯安裝
#https://github.com/secdev/scapy cd scapy-master/ python3 setup.py install
3、創(chuàng)建軟鏈接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip ln -s /usr/local/python3/bin/scapy /usr/bin/scapy
4、scapy生成動態(tài)路由軌跡圖代碼示例
#!/usr/bin/python3 #-*-coding:UTF-8-*- import os,sys,time,subprocess import logging,warnings warnings.filterwarnings("ignore",category=DeprecationWarning) #屏蔽scapy無用警告信息 logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #屏蔽模塊IPV6多余警告 from scapy.all import traceroute domains = input('請輸入IP地址或域名地址:') target = domains.split(' ') dport = [80] #掃描的端口列表 if len(target) >=1 and target[0] !='': res,unans = traceroute(target,dport=dport,retry=2) #啟動路由跟蹤 res.graph(target="> test.svg") #生成svg矢量圖形 time.sleep(1) subprocess.Popen("/usr/bin/convert test.svg test.png", shell=True) #svg轉(zhuǎn)png格式 else: print('IP/domain number of errors,exit')
到此這篇關(guān)于Centos安裝python3與scapy模塊的文章就介紹到這了,更多相關(guān)Centos安裝python3內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python2.x實現(xiàn)人民幣轉(zhuǎn)大寫人民幣
這篇文章主要為大家詳細(xì)介紹了python2.x實現(xiàn)人民幣轉(zhuǎn)大寫人民幣,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06python實現(xiàn)識別手寫數(shù)字 python圖像識別算法
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)識別手寫數(shù)字,python圖像識別算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01python實現(xiàn)學(xué)生信息管理系統(tǒng)(面向?qū)ο?
這篇文章主要介紹了python實現(xiàn)面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06Python實現(xiàn)將數(shù)據(jù)庫一鍵導(dǎo)出為Excel表格的實例
下面小編就為大家?guī)硪黄狿ython實現(xiàn)將數(shù)據(jù)庫一鍵導(dǎo)出為Excel表格的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12