python简介与安装
Python简介和环境搭建
于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣。1991年首次发布,是ABC语言的继承,同时也是一种脚本语言。取名时,Guido van Rossum认为它应该“短小,独特,还有一点神秘感”,他是英国著名剧团Monty Python的忠实粉丝,所以就取名Python了。
图1 Monty Python剧团
牛人的世界我们无法企及,随便玩玩就玩出门流行的语言来。
编程语言众多,Python按照分类来讲,首先是动态语言,无需编译,然后是脚本语言。当然脚本语言这个特性在逐渐淡化,Python可以在Web、桌面、后台服务各种应用类型中占有一席之地。
Python从创建之后,到2000年发布了2.0版本,到2008年发布了3.0版本。到目前为止,2.版本仍然是使用最广泛的版本,有一部分原因要归咎于3.0版本对2.版本的不兼容。本系列教程会尽量使用最新的3.*版本来开发示例。
Python本身是开源的,我们可以从https://www.python.org/downloads/source/ 下载Python从2.0.1开始到当前最新版(3.7.0)各个版本的的源码。(当然3.8已经问世!)
图2 Python源码下载
Python的跨平台特性,可以让开发者放心的选择自己喜欢的操作系统和开发工具来开发代码。Python
不仅可以在Windows、Mac OS X、Linux/Unix运行,也可以运行在移动设备上,后面我们会有单独的章节来具体介绍。
Python有很多值得我们称道的特性,这里就先不展开介绍了,“绝知此事要躬行”,我们先搭建出开发环境来,实现我们的第一个“Hello world”。
1.1.1 安装Python
我们可以到 https://www.python.org/downloads/windows/下载windows下的Phthon安装文件,我们下载独立的安装文件进行安装。
Python安装文件下载(windows)
到https://www.python.org/downloads/mac-osx/下载Mac OS X的安装文件,
Python安装文件下载(Mac OS X)
到https://www.python.org/download/other/下载其他平台的安装文件。
Python安装文件下载(其他平台)
Linux 下安装Python一般采用源码或则软件包管理器安装的方式。 下面分别介绍在不同操作系统下Python的安装方法。
1.1.1.1 Windows下安装Python
我们从下载安装文件之后,打开exe文件。
注意上图中的标记的选项。通常我们会把Python安装的系统的PATH系统变量中,这样我们就可以在任何地方直接调用Python。当然也可以不安装,需要到Python的安装目录里调用python.exe。
选择自定义安装。
这里注意pip一定要勾选上,这是默认的Python包管理工具,后面我们会继续介绍。点击下一步。
这里我们可以自定义安装目录,添加环境变量等选项。点击安装。
允许安装。
安装完成之后,如果提醒我们修改系统PATH最大字符数限制的话,点击更改。
安装成功后,关闭对话框。
现在我们可以进行简单的测试了。如果你选择了将Python安装到PATH,直接命令行输入Python启动运行时,否则到Python的安装目录启动python.exe。
输入简单的语句测试下。
到此为止,Python在widonws上的安装完成了,下面我们看看在Mac OS X上如何安装。
1.1.1.2 Mac OS X 安装Python
目前Mac OS X 默认安装Python2.7,我们下载最新的安装包。
点击继续。
点击“安装”。
安装成功之后,如果要求我们安装SSL根证书的话,需要点击链接跳转到下载页面下载安装。其实,也可以直接通过pip来安装。
在使用pip之前,我们先对pip进行更新。
pip3 install --upgrade pip
之后执行命令安装certifi。
pip install certifi
下面我们来验证新安装的Python。
直接输入python,使用的还是Python2.7.
默认的环境变量,我们不去动,这里使用python3来启动。
1.1.1.3 Linux下 安装Python
安装python
在Linux下安装Python,一般采用源码安装的方式。首先下载源码。
$ sudo mkdir /usr/local/python3 # 创建安装目录
# 下载 Python 源文件
$ wget --no-check-certificate https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
# 注意:wget获取https的时候要加上:--no-check-certificate
$ tar -xzvf Python-3.7.0.tgz # 解压缩包
$ cd Python-3.7.0 # 进入解压目录
第二步是编译安装。
$ sudo ./configure --prefix=/usr/local/python3 # 指定创建的目录
$ sudo make
$ sudo make install
第三步是配置链接。因为很多Linux系统自带Python2.7,所以这里要配置一下软连接,使得我们可以使用python3 命令来启动Python3.7.
$ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
如果使用 的是apt软件包管理器的系统,可以直接使用如下命令来安装:
apt-get install python3
安装pip
可以使用命令直接安装pip。
sudo yum install python-pip
或者
sudo apt-get install python-pip
简单测试同上。
1.1.2 包管理
在实际开发过程中,不可能所有功能都基于Python原生API来进行开发,很多第三方软件包为我们提供了很好的便利条件。安装和管理软件包分为手动和工具两种方式,下面我们简单介绍这两种方式。软件包管理工具为大家介绍pip和easy_install。
1.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:~# cd python-nmap-0.6.0/
root@kali:~/python-nmap-0.6.0# ls
root@kali:~/python-nmap-0.6.0#
安装:
python setup.py install
1.1.2.2 pip
上面安装Python的讲解中已经讲解了如何安装pip。pip是Python安装包默认的包管理工具,下面举例说明基本用法。
通过 pip 来安装github3模块:
pip install github3.py
如果要安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。例如:
pip install 'Markdown<2.0'
pip install 'Markdown>2.0,<2.0.3
我们也可以将所有的依赖放到一个requirement文件中,一次性安装。例如新建内容如下的requirements.txt文件:
执行命令:
pip install -r requirements.txt
卸载软件包,使用uninstall选项:
pip uninstall SomePackage
更新软件包:
pip install --upgrade SomePackage
显示已经安装的文件:
pip show --files SomePackage
显示过期的安装包:
pip list --outdated
1.1.2.3 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
这里再介绍一个通用的方法,适合所有操作系统。首先下载ez_setup.py (https://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
这样就会将redis模块卸载。
1.1.3 virtualenv
virtualenv是可以用来创建独立Python环境的工具, 来解决依赖、版本以及间接权限
问题. 比如一个应用依赖Python 2.7 而另一个应用依赖Python 3.0,或者一个项目依赖Django1.3 而当前全局开发环境为Django1.7, 版本跨度过大, 导致不兼容使项目无法正在运行, 使用virtualenv可以解决这些问题.基本原理为:
virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库.
1) 安装Virtualenv
sudo pip install virtualenv
2) 创建项目的虚拟环境
mkdir testvenv #名字随便取
cd testvenv
virtualenv venv # venv 可替换为别的虚拟环境名称
执行后,在本地会生成一个与虚拟环境同名的文件夹,包含 Python 可执行文件和 pip 库的拷贝,可用于安装其他包。但是默认情况下,虚拟环境中不会包含也无法使用系统环境的global site-packages。比如系统环境里安装了 requests 模块,在虚拟环境里 import requests 会提示 ImportError。如果想使用系统环境的第三方软件包,可以在创建虚拟环境时使用参数–system-site-packages。
virtualenv --system-site-packages venv
另外,你还可以自己指定虚拟环境所使用的 Python 版本,但前提是系统中已经安装了该版本:
virtualenv -p /usr/bin/python2.7 venv
3) 使用虚拟环境
进入虚拟环境目录,启动虚拟环境:
cd venv
source bin/activate # Windows 系统下运行 Scripts\
python -V
如果未对命令行进行个性化,此时命令行前面应该会多出一个括号,括号里为虚拟环境的名称。启动虚拟环境后安装的所有模块都会安装到该虚拟环境目录里。
退出虚拟环境:
deactivate
1.1.4 基于VS Code 搭建开发环境
可以用来开发Python的开发工具很多,选择 Visual Studio Code是因为它轻量,开源,跨平台,方便我们在不同的操作系统上开发和调试代码。
在 官方网站 https://code.visualstudio.com/#alt-downloads ,可以知道它提供的各种系统的安装包。
windows 和 Mac下的安装都很简单,下面简单介绍Linux下的安装方法。
基于Debian/Ubuntu发行版的Linux,我们下载.deb安装包,然后执行以下命令:
sudo dpkg -i <file>.deb
sudo apt-get install -f # Install dependencies
基于RHEL, Fedora 和 CentOS 发行版的Linux,下载.rpm安装包进行安装。
以64位安装包为例,首先需要注册更新yum仓库。
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
执行安装:
dnf check-update
sudo dnf install code
VS Code安装好之后,打开工具,安装扩展以支持Python开发。
打开扩展管理工具。
输入“python”进行搜索。
选择上图中框选的扩展,点击“安装”按钮。安装完成后,点击“重新加载”。
VS Code重启之后,我们打开一个文件夹,新建一个test.py文件(使用菜单-->文件-->打开;资源管理器-->新建文件)。
新建 “*.py"文件后,在资源管理器左下角,可以切换Python的版本。
选择合适的版本之后, VS Code会提醒我们安装pylint,点击安装即可。我们来安装pylint(Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合编码风格的代码)。
下面我们回到test.py文件,随便加几行代码。
import socket
print("hello\n")
print("world!")
切换到调试菜单,点击”配置“按钮。
编辑器会打开launch.json文件,点击下方的添加配置。
选择使用外部终端的Python调试器。
添加的 配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Terminal (external)",
"type": "python",
"request": "launch",
"program": "${file}",//当前激活的文件作为启动项
"console": "terminal.external.osxExec" //启用外部终端
}
]
}
保存配置之后我们切回test.py ,在代码行数标识的左侧单击可以添加断点,方便我们逐行或者逐过程调试代码。
启动调试可以直接点击启动按钮,更多的启动选项可以在调试菜单中看到。
下面我们直接启动调试,程序首先会打开新的终端,然后会在我们的断点处断住。
如上图是启动调试,代码运行到断点处,左侧是调试信息区域,这里我们可以看到变量和堆栈信息。右侧4区域是调试控制按钮,鼠标移上去会有功能提示。5区域是代码区,此时我们可以增加和去掉断点,查看变量。6区域是打开的终端,test.py的测试代码接收用户的输入并打印,我们可以输入任意内容回车查看结果。同时在编辑器下方的调试控制台也可以显示输出内容。
VS Code 编辑器的详细使用细节这里我们就不展开了,后面教程中涉及到的应用点会单独补充。建议读者尽可能全面的阅读官方文档(https://code.visualstudio.com/docs)。
python简介与安装的更多相关文章
- 【Python①】python简介,安装以及配置
今天开始学习python,将一些心得和知识点记录下来,如有疏漏或表达问题,欢迎指正.后面所有代码均为Python 3.3.2版本(运行环境:Windows7)编写. 附:2014年8月TIOBE编程语 ...
- PYTHON简介及安装
Python简介 Python是一种广泛使用的高层次,通用,解释,动态编程语言.它的设计理念强调代码的可读性,它的语法允许程序员表达更少的代码的概念比将在可能语言如C ++或Java.该语言提供旨在使 ...
- python学习之路-1 python简介及安装方法
python简介 一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. 目前最新版本为3.5.1,发布于2015年12月07日 ...
- python简介及安装配置
概述 python是解释型语言,相对编译型语言,执行效率较低.python是通过c语言编写,官方解释器也是c语言编写cpython,也有其他的如用java编写的jpython.目前有2.0和3.0版本 ...
- python第一章:简介与安装--小白博客
Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...
- (一)、Python的简介与安装
Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承. ...
- 【python】-- MySQL简介、安装、操作
MySQL简介.安装.操作 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...
- python简介及详细安装方法
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- 1、Python简介与Python安装
一.Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的创始人为吉多·范罗苏姆(Guido van Rossum)少数几个不秃头的语言创始 ...
随机推荐
- 51nod-1204 并查集
你的朋友写下一串包含1和0的串让你猜,你可以从中选择一个连续的子串(例如其中的第3到第5个数字)问他,该子串中包含了奇数个还是偶数个1,他会回答你的问题,然后你可以继续提问......你怀疑朋友的答案 ...
- php开发面试题---创建型设计模式1(创建型设计模式有哪几种)
php开发面试题---创建型设计模式1(创建型设计模式有哪几种) 一.总结 一句话总结: 共五种:(简单工厂模式).工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 1.学设计模式最好的方 ...
- QT--QSocketNotifier类介绍
QSocketNotifier 用来监听系统文件操作,将操作转换为Qt事件进入系统的消息循环队列.并调用预先设置的事件接受函数,处理事件. 一共存在3类事件:read,write,exceptio ...
- vue中配置可修改的服务器接口api
https://www.jianshu.com/p/377bfd2d9034?utm_campaign 太坑了,找了全网,几乎都不能用,也不知道哪写错了,这个是可以用的.
- vue-router 路由配置
前提: 项目由 vue-cli 脚手架创建. 首先,先下载 vue-router npm install vue-router 安装完成后,运行项目 npm run dev 打开 main.js , ...
- 20140702 赋值构造函数的形参为什么一定用引用。string类的赋值运算函数的注意点
1.复制构造函数为什么一定要用引用,而不是用值 类名::复制构造函数(类名&引用名) 传递引用,可以避免复制,如果一个数据相当大的化,进行复制会浪费很多时间的. 类名::复制构造函数(类名 变 ...
- ubuntu 搭建嵌入式开发环境tftp的方法
网上很多安装的时候都要安装tftpd-hpa tftp-hpa xinetd三个安装包,经我测试,xinetd无需安装,安装好前两个后,修改tftpd-hpa的配置文件即可:etc/default/t ...
- http over git server
编译安装git 参考 <CentOS7编译安装git> 安装httpd yum install httpd -y 安装gitweb yum install gitweb -y 创建项目根目 ...
- spring 声明式事务原理解读
在Spring中,声明式事务是通过事务属性(transaction attribute)来定义的.事务属性描述了事务策略如何应用到方法上.事务属性包含5个方面: 传播行为 隔离级别 是否只 ...
- 关于阿里云 ETC服务器 端口开放问题
今天整了个阿里云,为了开放一个端口 各种入出规则整了半天 最后连一个hello world都发不出来.. 最后的最后 才知道 开端口除了做入规则操作 还得调一下阿里的控制台 当你也买了个ECS不要像我 ...