Python基础——安装运行
Python是如何运行的?
像绝大多数编程语言一样,要在计算机上能够运行python程序,至少需要安装一个最小的Python包:一个Python解释器和支持的库。
安装Python
安装包下载:http://www.python.org/
根据不同的平台,选择不同的安装包。Windows平台可通过获取并运行自安装的可执行文件,把Python安装到机器上,一般情况是双击后再所有的弹出的对话提示框选择“是”或“继续”即可;Linux平台都预装有Python以及相关标准库。
Python如何运行程序
当我们编写好python代码并保存.py文件后,在命令行模式下用python命令运行python代码,python解释器会执行一些我们看不到的步骤,确切的说第一步是编译成所谓的“字节码”,第二步将其转发到所谓的虚拟机PVM,第三步是虚拟机PVM将我们的程序转为计算机可执行的二进制代码。

字节码编译
当程序执行时,Python内部(绝大多数是完全隐藏的)会现将源代码(.py)编译成字节码的形式。编译时一个简单的翻译步骤,而且字节码是源代码底层的、与平台无关的表现形式。通俗的讲是Python通过把每一条源语句分解为单一步骤来将这些源语句翻译成一组字节码指令。这些字节码可以提高执行速度,比起文本文件中的原始代码语句,字节码的运行速度要快得多。Python字节码不是机器上的二进制码,字节码是特定于Python的一种表现形式。
Python编译字节码的过程是完全隐藏起来的,如果Python进程在机器上拥有写入权限,它将把程序的字节码保存为一个以.pyc为扩展名的文件(“.pyc”就是编译过的“.py”源代码)。当程序运行之后,会在源代码的同一目录下看到这些文件。如果在上一次保存字节码之后没有修改源代码的话,Python将会加载.pyc文件并跳过编译步骤。当源代码修改后,它自动检查源文件和字节码文件的时间戳,字节码将会自动重新创建并覆盖之前的.pyc字节码文件。需要注意的是如果Python不拥有写入权限的话,并不会影响程序的工作。python仍然会有字节码的编译过程,字节码将会在内存中生成并在程序结束时释放。由于字节码.pyc能够加速启动程序,建议给python有写入权限。
Python虚拟机(PVM)
当字节码编译之后,将会把字节码发送到Python虚拟机(Python Virtual Machine,简写为PVM)上执行。实际上,PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。PVM是Python的运行引擎,是Python系统的一部分,是实际运行脚本的组件。
Python性能
python是代码写好后立即运行的,不需要像C/C++那样build和make等步骤,在开发上效率得到极大的提高,开发和执行环境实际上是没有区别的。Python代码无法运行像C/C++代码一样快的原因:PVM循环仍然需要解释字节码,并且字节码指令与CPU指令相比需要更多的工作,与其他的解释器不同,Python并不需要反复重分析和重分解每一行语句,实际上Python代码的运行速度介于传统的编译语言和传统的解释语言之间。
Python的主要实现方式
python语言主要有三种表现方式:CPython、Jython和IronPython。
CPython:和其他两种实现方式相比,原始的、标准的Python实现方式称作为CPython。计算机上一般预安装的为CPython。
Jython:是python语言的替代实现方式,其目的是为了与Java编程语言集成,能够让Python代码脚本化java应用程序。Jython包含了Java类,这些类编译Python源代码、形成Java字节码,并将得到的字节码映射到Java虚拟机(JVM)上。
IronPython:其设计目的是让Python程序可以与Windows平台上的.NET框架以及与之对应的Linux上的Mono编写成应用程序相集成。像微软早期的COM模型一样,将.NET和C#程序语言的运行系统设计成与语言无关性的对象通信层。IronPython允许Python程序既可以用作客户端也可以用作服务端的组件,还可以与其他.NET和C#的语言进行通信。
Python程序的运行
在安装完Python包之后,有多种办法可以运行Python:在IDE中、系统终端中等。Python解释器成功安装在计算机上后,往往在操作系统提示环境下驶入python,不需要任何参数。如Windows的cmd下运行:
Linux下运行:

交互地运行代码
在交互模式下,想输入输入多少Python命令就输入多少,每一个命令在输入完之后回车即可立即运行。此外,交互模式下自动打印表达式结果,往往可以不需要每次都输入print语句;也可以在交互模式输入多行语句(if、while、for等复合语句),在输入完所有语句后按两次Enter后会立即运行。

交互模式是python实验绝佳的好地方。当我们对一段Python代码的运行有任何疑问的时候,马上可以打开交互命令行并实验代码,可以看到发生了什么。
可执行脚本(#!)
如果在Linux及其他的Unix类系统上使用Python,可以将Python代码编程为可执行程序,就像使用Shell语言编写的csh和ksh一样。这样的脚本往往叫做可执行脚本。简而言之,Unix风格的可执行脚本包含了Python语句的一般文本文件,但是有两个特殊的属性。
- 它们的第一行是特定的。脚本的第一行往往以字符#!开始(通常叫做“hash bang”),其后紧跟机器python解释器的路径
- 它们往往都拥有可执行的权限。脚本文件往往通过告诉操作系统它们可以作为顶层的程序执行,而拥有可执行的权限。
例如在shell上vim test.py,保存文件之后,确保改文件有执行权限后,在shell上可以./test.py直接运行代码。


在Window平台必须在命令行模式下输入test.py或python test.py运行
Python基础——安装运行的更多相关文章
- python 基础安装使用
首先我们来学习一下怎么安装python和更新python,再来学习一些简单的解释器.变量.编码内容.循环等代码 第一步开始安装Python环境 安装Python windows: 1 2 3 4 5 ...
- python virtualenv 安装运行saltstack
需求产生场景: 1.python的virtualenv虚拟环境非常的好用. 2.saltstack作为运维自动化的一个重要组件也挺好用的. 但是: 1.saltsatck ...
- python基础-安装篇
1.安装之前我们要先去python的官网下载python的安装包 下载地址:https://www.python.org/downloads/ Python 官网有两个版本一个是3.5.2(最新版)一 ...
- python基础 ---- 安装
------ 安装两个软件就行了 1.Anaconda 地址: 作用: 管理不同版本的python 的第三方包 下载第三方依赖包和构造版本开发环境 2.python常用的IDE环境 2.1 P ...
- Python 基础学习篇
注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇: Python基础- 常用数据类型 第三篇: ...
- Python基础第一课
Python基础 安装软件并配置环境变量 1.第一句python --初学后缀名可以是任何数 --后期学习需要导入模块时不是py后缀名会报错 2.两种执行方式 Python解释器 py文件路径 Pyt ...
- python基础初识介绍以及安装
python介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承. ...
- python基础系列教程——Python库的安装与卸载
python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
随机推荐
- ICCV 2017 Best Paper Awards
[ICCV 2017 Best Paper Awards]今年的ICCV不久前公布了Best Paper得主,來自Facebook AI Research的Mask R-CNN[1],與RetineN ...
- myeclipse 10 创建webservice
java 快捷创建webservice 收集一下,方便一下查阅 详情去看一下这个老哥,里面写得非常详细: http://hyan.iteye.com/ -- http://www.cnblogs.co ...
- less通用pc移动库
// less 文件 (移动端通用less文件) // 作者 marchen // 时间 2014/9/1 // 协议 MIT // 只考虑webkit内核手机浏览器和火狐内核浏览器 // 自定义le ...
- python 的矩阵运算——numpy
nbarray对象,就类似于C语言的数组!!! 一维数组: nbarray.array([]) 二维数组: nbarray.array([[],[]]) 数组大小: .shape 修改数组的排列: . ...
- Poj(2240),Floyd求汇率是不是赚钱
题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...
- http主要内容流程介绍
从这张图可以看出,从输入网址,按下回车的那一刻起,就开始了Redirect,那么为什么一开始就redirect呢?因为我们的浏览器可能记录了你的这个地址,以及永久跳转成一个新的地址了,所以一开始浏览器 ...
- JS中如何得到触发事件的属性?
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- 公众帐号如何向用户发送emoji表情(php版,附emoji编码表)
//字节转Emoji表情 function bytes_to_emoji($cp) { if ($cp > 0x10000){ # 4 bytes return chr(0xF0 | (($cp ...
- 删除已有的 HTML 元素
如需删除 HTML 元素,您必须首先获得该元素的父元素: 实例 <div id="div1"> <p id="p1">这是一个段落.&l ...
- PowerDesigner生成sql脚本
1.打开PowerDesigner->New Project; 2.填写项目名称,选择文件的存放路径: 3.新建一个模型,New Model: 4.选择概念模型,填写模型名称: 5.选择enti ...