3分钟,让虚拟机跑起Python

简介: Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 入门第一天



image.png


Python 简介


  • Python 的简介


  • Python官网


Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。


Python 的设计具有很强的可读性,语法简洁明晰

python具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。


Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。


  • Python 的发展历史


Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。


  • Python 的特点


优点:
  1、简单易学。很容易上手
  2、免费开源。 Python 是 FLOSS(自由/开放源码软件)之一.软件可以改动
  3、高层语言。开发时,不许考虑底层细节
  4、可移植。可以跨平台
  5、可扩展。某些算法不公开。你可以编写,调用
缺点:
  1、速度慢
  2、代码不能加密
  3、线程不能利用多CPU问题。GIL(全局解释器锁)


Python 环境搭建


  • 去Python官网下载Python程序包


  • 配置Yum源


[root@localhost ~]# rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/wget-1.14-18.el7.x86_64.rpm
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost ~]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost src]# yum clean all
[root@localhost ~]# yum -y install epel-release


  • 下载Python程序源码包


[root@localhost ~]# cd /usr/src
[root@localhost ~]# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
[root@localhost src]# ls
debug  kernels  Python-3.7.3.tar.xz


  • 安装编译器与依赖包


[root@localhost src]# yum -y install gcc gcc-c++ make zlib-devel libffi-devel openssl openssl-devel bzip2 bzip2-devel vim readline-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel


  • 编译安装


[root@localhost src]# tar xf Python-3.7.3.tar.xz
[root@localhost src]# cd Python-3.7.3
[root@localhost Python-3.7.3]# ls
aclocal.m4           configure     Include     m4               Modules  PCbuild        README.rst
CODE_OF_CONDUCT.rst  configure.ac  install-sh  Mac              Objects  Programs       setup.py
config.guess         Doc           Lib         Makefile.pre.in  Parser   pyconfig.h.in  Tools
config.sub           Grammar       LICENSE     Misc             PC       Python
[root@localhost Python-3.7.3]# ./configure --prefix=/usr/local/python37 --enable-optimization
[root@localhost Python-3.7.3]# make -j2
[root@localhost Python-3.7.3]# make install -j2


  • 安装后配置


[root@localhost ~]# ls /usr/local/python37/
bin  include  lib  share
[root@localhost ~]# echo 'export PATH=/usr/local/python37/bin:$PATH' > /etc/profile.d/py3.sh
[root@localhost ~]# source /etc/profile.d/py3.sh
[root@localhost ~]# echo $PATH
/usr/local/python37/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which python3
/usr/local/python37/bin/python3
[root@localhost ~]# pip3.7 install --upgrade pip


  • 测试


[root@localhost ~]# python3.7 
Python 3.7.3 (default, May 25 2021, 17:59:49) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+2
3
>>> exit()
[root@localhost ~]# 


Python 解释器


  • 工作原理


Python程序在第一次执行时,自动通过Compiler模块将源代码编译成.pyc后缀的bytecode(字节码)文件,之 后由python解释器(PVM,Interpreter)读取bytecode文件然后在处理器(processor)中运行。


  • 代码执行方式:


可以通过两种方式来执行Python代码:
1. 交互式解释器
2. Python程序文件


第一个Python 程序


  • hello,world


可以通过两种方式来执行Python代码:
1. 交互式解释器
2. Python程序文件


总结



  • 关于解释器


#!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器。
#!/usr/bin/env python 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python 相当于写死了 python 路径。
#!/usr/bin/env python 会去环境设置寻找 python 目录,可以增强代码的可移植性,推荐这种写法。
相关文章
|
2月前
|
存储 缓存 Java
深度解密 Python 虚拟机的执行环境:栈帧对象
深度解密 Python 虚拟机的执行环境:栈帧对象
71 13
|
2月前
|
存储 Java 开发者
用一篇文章告诉你如何篡改 Python 虚拟机
用一篇文章告诉你如何篡改 Python 虚拟机
14 0
|
2月前
|
存储 API 索引
一文让你搞懂 Python 虚拟机执行字节码的奥秘
一文让你搞懂 Python 虚拟机执行字节码的奥秘
50 0
|
7月前
|
算法 Python
深入理解Python虚拟机:super超级魔法的背后原理
深入理解Python虚拟机:super超级魔法的背后原理
|
NoSQL Redis 芯片
无意苦争春,一任群芳妒!M1 Mac book(Apple Silicon)能否支撑全栈工程师的日常?(Python3/Ruby/PHP/Mysql/Redis/NPM/虚拟机/Docker)
就像大航海时代里突然诞生的航空母舰一样,苹果把玩着手心里远超时代的M1芯片,微笑着对Intel说:“不好意思,虽然你也玩桌面芯片,但是,从今天开始,游戏就已经结束了,X86?还是省省吧。
无意苦争春,一任群芳妒!M1 Mac book(Apple Silicon)能否支撑全栈工程师的日常?(Python3/Ruby/PHP/Mysql/Redis/NPM/虚拟机/Docker)
|
机器学习/深度学习 IDE 前端开发
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(2)
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(2)
1588 0
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(2)
|
机器学习/深度学习 Ubuntu Java
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(1)
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(1)
1833 0
新手入门指南之玩转蓝桥云课(线上运行虚拟机,c++,Java,Javaweb,python环境,以及如何成功利用命令行运行这些环境)(1)
|
架构师 Unix 编译器
[oeasy]python0022_ python虚拟机_反编译_cpu架构_二进制字节码_汇编语言
[oeasy]python0022_ python虚拟机_反编译_cpu架构_二进制字节码_汇编语言
203 0
[oeasy]python0022_ python虚拟机_反编译_cpu架构_二进制字节码_汇编语言
|
缓存 Unix 开发工具
[oeasy]python0021_python虚拟机的位置_可执行文件_转化为字节形态
[oeasy]python0021_python虚拟机的位置_可执行文件_转化为字节形态
97 0
[oeasy]python0021_python虚拟机的位置_可执行文件_转化为字节形态
|
机器学习/深度学习 Ubuntu 前端开发
数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题(以ubuntu-18.04.3为例)
数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题(以ubuntu-18.04.3为例)
954 0
数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题(以ubuntu-18.04.3为例)