Python 黑帽编程 1.3 Python 运行时与包管理工具

0.1 本系列教程说明

本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决不少同窗对英文书的恐惧,解决看书以后实战过程当中遇到的问题而做。因为原书不少地方过于简略,笔者根据实际测试状况和最新的技术发展对内容作了大量的变动,固然最重要的是我的偏好。教程同时提供图文和视频教程两种方式,供不一样喜爱的同窗选择。javascript

0.2 前言

前两节里,咱们完成了操做系统和工具的安装。事实上能够进入到正式开发阶段了,Kali Linux系统自带了Python运行时及easy_install 和pip等基础组件,包括咱们以后的课程里要用到的pypcap等网络包也都一并存在了。php

这是Kali带来的好处,可是对初学Python的同窗来讲,我想有必要把Python运行时和模块安装的基础知识讲解清楚。html

1.1 安装PYTHON

首先到Python官方网站www.python.org/下载python的安装…java

转到下载页面。python

下载页面会自动识别咱们使用的操做系统,上面的下载按钮下载下来的就是识别以后的对应系统的软件包,在下面有其余系统的连接。这里须要注意的是python的两个主要 版本分支,一个是2.7.一个是3..*版本。咱们的系列课程推荐使用2.7,全部代码在3.0以上版本的环境中运行结果未知。你也能够选择使用最新的Python版原本编写程序,可是也必定要单独安装2.7版本,保证学习进度。linux

下载并保存文件。下面咱们说说在不一样系统下如何安装python,固然安装Python的方法也不少,恕我不能一一道来。git

1.1.0 Kali Linux下安装Python

Kali Linux系统自带,无需安装,略。github

1.1.1 windows下安装Python

浏览器打开www.python.org/downloads/w…redis

找到咱们要下载的2.7.12下载安装包。shell

下载以后,点击安装。安装过程当中,能够选择讲Python写到系统Path变量里,方便在任何地方访问Python。

安装完成后,测试。

1.1.2 Mac下安装Python

Mac下安装和Windows上差很少,先到Mac安装包的下载页,找到安装包,下载。

下载以后进行安装。

安装成功以后,启动终端进行校验。

1.1.4 Linux下安装Python

我使用的Linux为CentOS,安装方法为源码安装(任何系统都能采用源码安装的方式,Linux上这种方式更常见,不过在windows上源码安装要更麻烦一些),其余Linux操做系统方法相似。

在CentOS下安装Python,根据你所使用的系统的环境不一样,须要安装的内容也许会不同,主要的区别在须要的依赖项。不过解决方法也很简单,就是缺什么装什么了。下面的过程是在个人测试机上完成的。

首先确认是否安装了GCC,若是没有的话,使用yum进行安装。

# yum install gcc复制代码


GCC安装完成以后,咱们新建一个目录,用来下载Python源码,命令以下。

# mkdir src

# cd src

# wgethttps://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz复制代码

下载完成以后,解压,依次执行configure、make和install进行安装。

# tar xzf Python-2.7.10.tgz
# cd Python-2.7.10
# ./configure
# make install复制代码

安装完成以后,启动终端输入下面的命令,看是否安装成功

# python –version复制代码

1.2 模块的安装

Python的模块(module)在概念层面和其余语言并没有太大的区别,都是为了逻辑上划分代码功能,将概念上高内聚的代码放在一块儿组成一个模块。在表现形式上,python的模块是以文件做为分割的,简单讲,模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。模块的模块名(作为一个字符串)能够由全局变量 name 获得。

关于模块的编写、导入、加载机制等内容,在后面的课程会详细介绍。

使用Python编程来解决实际问题的便利性,很大程度上得益于众多的Python模块,这些模块由官方、社区或者其余第三方开发者提供。我在以前的非本系列的一篇博文中(《kali linux Python 黑客编程1 开发环境初始化》)介绍过Python里安装模块的三种方法,这里再拿出来从新讲解下。

1.2.1 手动安装

第一种方法是手动下载软件包,运行安装程序来安装。

好比咱们想要使用Python-nmap组件去解析nmap的扫描结果,咱们先手动下载安装包。

wget http://xael.org/pages/python-nmap-0.6.0.tar.gz复制代码

解压:

root@kali:~# tar xzf python-nmap-0.6.0.tar.gz

root@kali:~# ls

paros          python-nmap-0.6.0         公共  视频  文档  音乐

phpmyadmin.sh  python-nmap-0.6.0.tar.gz  模板  图片  下载  桌面

root@kali:~# cd python-nmap-0.6.0/

root@kali:~/python-nmap-0.6.0# ls

CHANGELOG   gpl-3.0.txt  MANIFEST.in  nmap.html  README.txt        setup.py

example.py  Makefile     nmap         PKG-INFO   requirements.txt

root@kali:~/python-nmap-0.6.0#
`复制代码

运行setup.py,执行安装。

python setup.py install

root@kali:~/python-nmap-0.6.0# python setup.py install

/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'

  warnings.warn(msg)

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.7

creating build/lib.linux-x86_64-2.7/nmap

copying nmap/__init__.py -> build/lib.linux-x86_64-2.7/nmap

copying nmap/test_nmap.py -> build/lib.linux-x86_64-2.7/nmap

copying nmap/nmap.py -> build/lib.linux-x86_64-2.7/nmap

running install_lib

creating /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/__init__.py -> /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/test_nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap

copying build/lib.linux-x86_64-2.7/nmap/nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/__init__.py to __init__.pyc

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/test_nmap.py to test_nmap.pyc

byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/nmap.py to nmap.pyc

running install_egg_info

Writing /usr/local/lib/python2.7/dist-packages/python_nmap-0.6.0.egg-info复制代码

1.2.2 easy_intall

easy_install 是Python setuptools系列工具的中的一个工具,能够用来自动查找、下载、安装、升级依赖包。

在Kali Linux中Python setuptools默认已经被安装,其余Linux系统中使用apt-get或者yum均可以安装。

apt-get 安装命令为:

sudo apt-get install python-setuptools复制代码

yum 安装命令为:

yum install setuptool复制代码

考虑到windows,这里再介绍一个通用的方法,适合全部操做系统。

首先下载ez_setup.py (bootstrap.pypa.io/ez_setup.py…

python ez_setup.py复制代码

下面咱们使用easy_install 来安装Python的一个模块,能够用来对dpf进行解析和安全测试的pyPdf。

easy_install pyPdf复制代码

easy_install固然也提供了卸载模块/包的功能。可是必需要注意的是,该模块/包必需要在 easy-install.pth 有相关信息,换句话说,也就是要使用easy_install安装的,才可进行卸载。好比命令:

easy_install -m redis复制代码

这样就会将Python中的redis模块卸载。

其余命令参数,这里就不详细介绍了,请各位同窗自行查看。

1.2.3 pip

好消息是,最新版的Python2.x和3.x都已经集成了python-pip。

下面咱们经过 pip 来安装github3模块。

pip install github3.py复制代码
root@kali:~/python-nmap-0.6.0# pip install github3.py

Downloading/unpacking github3.py

  Downloading github3.py-0.9.5-py2.py3-none-any.whl (109kB): 109kB downloaded

Downloading/unpacking uritemplate.py>=0.2.0 (from github3.py)

  Downloading uritemplate.py-0.3.0.tar.gz

  Running setup.py (path:/tmp/pip-build-LRgVNm/uritemplate.py/setup.py) egg_info for package uritemplate.py



Requirement already satisfied (use --upgrade to upgrade): requests>=2.0 in /usr/lib/python2.7/dist-packages (from github3.py)

Installing collected packages: github3.py, uritemplate.py

  Running setup.py install for uritemplate.py



Successfully installed github3.py uritemplate.py

Cleaning up...复制代码

下面再列举一些其余的经常使用功能,一样的更详细的用法留给各位同窗自学。

若是要安装特定版本的package,经过使用==, >=, <=, >, <来指定一个版本号。例如:

pip install 'Markdown<2.0'复制代码
pip install 'Markdown>2.0,<2.0.3复制代码

若是有requirement的话,直接pip install -r requirements.txt就能够安装全部的了。

卸载软件,使用uninstall参数:

pip uninstall SomePackage复制代码

更新软件:

pip install --upgrade SomePackage复制代码

显示已经安装的文件:

pip show --files SomePackage复制代码

显示过时的安装包:

pip list --outdated复制代码

1.3 小结

本节课程依然简单,可是是你必需要掌握的。以后的开发课程中,咱们会不厌其烦的使用包管理工具来安装咱们须要的模块。

1.4 本节对应视频教程获取方法

在微信订阅号(xuanhun521)依次打开“网络安全”—>”Python黑客编程”,找到对应的本篇文章的1.4节,有具体获取视频教程的方法。

因为教程仍在创做过程当中,在整套教程完结前,感兴趣的同窗请关注个人微信订阅号(xuanhun521,下方二维码),我会第一时间在订阅号推送图文教程和视频教程。问题讨论请加qq群:Hacking (1群):303242737 Hacking (2群):147098303。

关注以后,回复请回复“Python”,获取更多内容。

订阅号双11(11月10号到12号)将有活动,赠送价值万元的 图书,视频,图文教程,欢迎关注参与。

相关文章
相关标签/搜索