python embed安装_安装python

本文详细介绍了Python在运维领域的应用,包括自动化工具开发和C/S后端架构。强调了学习过程中需理解并实践Python2.7版本,并在CentOS上安装Python,特别讨论了如何在离线环境下安装和配置ipython。此外,文章还提到了Python3的必要性,因为Python2.7将在2020年后不再维护。最后,文中深入探讨了Python变量、算术运算符和关系运算符的概念,以及如何进行交互式编程。
部署运行你感兴趣的模型镜像

初识python

python在运维方面可用于自动化运维工具开发

python对运维需求工具进行开发

python能满足大部分运维需求,又能做c/s后端架构,也能使用web框架开发web界面

python课程在学习过程中需要边看边做,对于晦涩或难懂的部分需要多看多去理解、多做

python安装

python是跨平台的开发语言,可以在windows和linux各发行版上进行安装使用,在centos上,默认安装的python版本是python2版本号的

在学习过程中着重使用python2.7的版本,使用centos系统自带版本

windows安装python

windows上的安装过程,安装在C:\Python36目录下,然后点击Install开始安装

在windows中添加python的环境变量,如下:

计算机或我的电脑右击打开属性--系统高级设置

添加python的安装路径,可在用户或系统变量中添加,加入后确认即可

打开windows的CMD,输入python进入python,输入exit()退出

linux中安装python

linux系统一般都自带如2.7版本的python,但是我们在使用时要用一个叫ipython的插件,这个插件支持python语法补全。这个插件需要自行安装,需要使用到网络来进行安装,如果系统不能联网,则需要下载需要的安装包进行编译形式安装

离线安装ipython

注:这里的包只适用于python2.7基础环境的安装

首先下载pip的安装文件,下载完成后解压并使用包内的setup.py来进行安装(pip安装可以使用最新版本的安装包文件)

[root@localhost python]# tar zxf pip-19.1.1.tar.gz -C .[root@localhost python]# cd pip-19.1.1[root@localhost pip-19.1.1]# python setup.py build[root@localhost pip-19.1.1]# python setup.py install

安装ipython插件,安装ipython根据系统自带的是2.7版本的python,因此ipython还不能安装最新版本的,建议为python安装ipython-3.2左右的版本

[root@localhost python]# tar zxf ipython-3.2.0.tar.gz -C .[root@localhost python]# cd ipython-3.2.0[root@localhost ipython-3.2.0]# python setup.py build[root@localhost ipython-3.2.0]# python setup.py install

一般编译安装通过后,ipython还会缺一些支持的依赖组件,这些组件可以在报错信息中找到,比如执行ipython后会报错

[root@localhost ipython-3.2.0]# ipythonTraceback (most recent call last):File "/usr/bin/ipython", line 4, in from IPython import start_ipythonFile "/usr/lib/python2.7/site-packages/IPython/__init__.py", line 49, in from .terminal.embed import embedFile "/usr/lib/python2.7/site-packages/IPython/terminal/embed.py", line 19, in from IPython.terminal.ipapp import load_default_configFile "/usr/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 22, in from IPython.core.completer import IPCompleterFile "/usr/lib/python2.7/site-packages/IPython/core/completer.py", line 71, in from IPython.utils import genericsFile "/usr/lib/python2.7/site-packages/IPython/utils/generics.py", line 8, in from simplegeneric import genericImportError: No module named simplegeneric

其中注意这行:ImportError,这里提示出:No module named simplegeneric(没有名为simplegeneric这个模块),遇到这种情况需要到python官网搜索到对应的模块安装文件,然后执行setup.py进行安装

离线安装完成后,在系统命令行中输入ipython就可以进入到ipython的环境当中了,支持python语法补全及帮助

使用yum安装ipython

若服务器可连接网络,可以直接使用yum安装方式,这种方式也比较快捷简单

需要安装pip,再通过pip命令来安装ipython开发环境,安装pip则需要使用到epel的扩展安装源

epel文件可以在一些镜像网站中获取,下载后使用rpm来进行安装

[root@localhost lua]00:32# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm[root@localhost src]02:02# rpm -ivh epel-release-6-8.noarch.rpmPreparing...                          ################################# [100%]package epel-release-6-8.noarch is already installed

若epel没有提供旧版本的python-pip,那就需要我们自己去寻找相应的python-pip安装包了,我这里安装的epel无法提供低版本的pip

[root@localhost src]03:31# yum list |grep python-pippython-pip.noarch 7.1.0-1.el6 epel

这里我是在官网下载pip 19版本的安装包,执行python setup.py来进行安装的,出了提示setuptools的依赖需要下载安装外,其他都没有出现问题,这个步骤安装完成后就可以使用pip命令了

安装setuptools依赖支持[root@localhost src]04:21# cd setuptools-41.0.1[root@localhost setuptools-41.0.1]04:21# python setup.py install安装pip,安装完成后就可以使用pip install ipython来安装了[root@localhost pip-19.1.1]04:22# python setup.py install[root@localhost src]04:07# pip install ipython

安装完成后不出问题的话可顺利打开ipython环境

安装python3

为什么还要安装python3环境的ipython

因为python官方给出一个说明提示,提示中详细描述python会在未来不再提供支持维护:

Python 2.7将于2020年1月1日到期。请升级您的Python,因为在该日期之后将不再维护Python 2.7。 未来的pip版本将放弃对Python 2.7的支持。

首先编译安装openssl,openssl是pip对ssh访问的一个功能模块,但python内置的openssl会有一定的版本问题,导致ssh无法访问

进入openssl的解压目录./config --prefix=/usr/local/openssl no-zlib #不需要zlib模块makemake install为openssl相关module创建软连接ln -s /usr/local/openssl/include/openssl /usr/include/opensslln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.soln -s /usr/local/openssl/bin/openssl /usr/bin/openssl写入openssl库文件的搜索路径echo "/usr/local/openssl/lib" >> /etc/ld.so.conf使修改后的/etc/ld.so.conf生效ldconfig -v查看openssl版本openssl version

下载python3的安装包文件,解压到指定目录下,cd到解压目录后执行编译安装,编译时指定手动安装的openssl安装路径,也就是说使用自己编译安装的openssl模块,在这个步骤也需要安装好SQLite模块支持

[root@localhost Python-3.7.3]04:27# cd /[root@localhost /]04:28# cd /usr/local/src/Python-3.7.3[root@localhost Python-3.7.3]04:28# ./configure --prefix=/usr/local/python3 --enable-optimizations  --with-openssl=/usr/local/openssl && make && make install

为python3安装ipython

安装过程中会遇到setuptools的模块报错,而安装setuptools又会出现No module named '_ctypes'的错误。

在这个步骤时,首先下载pip和setuptools包,对setuptools和pip进行安装,在进入Python解压目录进行make install,并对python3做软连接和系统环境变量的全局配置

[root@localhost /]04:28# ln -s /usr/local/python3/bin/python3 /usr/bin/python3[root@localhost /]04:28# echo "PATH=$PATH:$HOME/bin:/usr/local/python3/bin" >>  /etc/profile

安装ipython,在安装ipython过程中,如果遇到pip is configured with locations that require TLS/SSL问题,那么这个就是openssl版本较低的问题,需要编译安装一个高版本的openssl服务,安装完成后执行pip3 install ipython就可以安装ipython环境了

在执行pip3 install ipython过程中,如果提示出

You are using pip version 19.0.3, however version 19.1.1 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

翻译过来就是说需要对pip库进行升级,因为在库中找不到所需要的版本包,这里根据提示执行pip3 ubstakk --upgrade pip升级下即可。

注:为什么pip3,因为依照python3.7来进行安装的pip环境,待ipython安装完成后,其命令也是ipython3

缺少SQLite模块

ipython3这个命令能成功使用后,进入python环境又发现提示ipython是不能够保存操作历史记录的,因为编译安装时没有提供sqlite这个模块依赖支持,这里没办法,只能删除安装目录重新编译安装python3

进入ipython后又出现了/usr/local/python3/lib/python3.7/site-packages/IPython/core/history.py:226: UserWarning: IPython History requires SQLite, your history will not be savedwarn("IPython History requires SQLite, your history will not be saved")的提示信息,大概意思说ipython的记录不会被保存,因为没有SQLite记录数据库支持

这里还得重新编译python重新加入SQLite支持才行,删除之前安装好的python目录和解压目录,编译安装好sqlite后,重新编译安装python

安装SQLite

编译安装的sqlite不能正常被python加载,所以寻找到yum安装sqlite的方法,并且通过了ipython的支持。yum安装SQLite:

yum install sqlite-devel

重新编译安装python

[root@localhost Python-3.7.3]07:26# ./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl  && make && make install[root@localhost Python-3.7.3]07:26#  pip install --upgrade pip[root@localhost Python-3.7.3]07:26#  pip3 install ipython

ipython3查看安装的环境

python文件类型

python在linux系统上有两种编写方式,一个是在ipython中编写python,另一个就是在文件中写入python程序

在文件中写入一个打印hello world的语句,这种是通常的文本格式编写方式

python文件前必须要声明python的路径,否则执行时会被当成bash文件来执行

[root@localhost file]10:00# vim yli.py#/usr/bin/python3print "hello world!"[root@localhost file]10:00# python yli.pyhello world!

pyc格式的python文件

字节代码,通过compile模块编译后生成的后缀名为pyc的文件,源文件经过编译后成为字节代码文件,使用cat等命令无法查看到内容

pyc格式文件需要声明一下模块,然后再来编译python文件,这样的话编译模块的语法需要另写一个文件中

test.py是需要编译的文件,tlist.py是编译语法文件

[root@localhost file]10:47# vim tlist.py#!/usr/bin/pythonimport py_compilepy_compile.compile('test.py')test.py文件内容[root@localhost file]10:47# vim test.py#/usr/bin/python3print '123456'使用编译模块的文件编译之后执行pyc格式的脚本文件,输出和test.py同样的内容,但是pyc文本变成了二进制文件,文件内容不可看[root@localhost file]10:50# python tlist.py[root@localhost file]10:51# lstest.py  test.pyc  tlist.py  yli.py[root@localhost file]10:51# python test.pyc123456

pyo格式文件

pyo也是将python文件编译成二进制文件,不同的是,pyo对python有一定优化,-O指定表示优化,-m指定的加载模块

[root@localhost file]10:58# python -O -m py_compile test.py[root@localhost file]10:58# lstest.py test.pyc test.pyo tlist.py yli.py[root@localhost file]10:58# python2 test.pyo123456

python变量

变量的意义:变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且这个值可以改变。python下的变量是对一个数据的引用,就比如通过标签来引用一个数值

变量的命名:变量名由字母、数字和下划线组成,变量不能以数字开头,不能有python的模块等系统关键字。变量的赋值,是变量的声明和定义的过程。如a = 1,变量通常使用=号来定义,读作1赋值给a

变量赋值

变量赋值和重新赋值的内存区域变化

变量a在引用第一个数值时在内存区域中是9307072区域,当重新赋值后,变量a的区域id发生变化,这里变成为了9307104In [1]: a = 1In [2]: id(a)Out[2]: 9307072In [3]: a = 2In [4]: id(a)Out[4]: 9307104

变量赋值运算符

将一个变量赋值,赋值有并且运算,比如将一个整数变量进行+ - / *的运算

变量y初始的值为3,数值类型为整数(int)

使用+=表示y变量的数值相加后面的数值返回的相加结果再赋值给变量y

In [1]: y = 3In [2]: y += 3In [3]: yOut[3]: 6

使用-=表示y变量的数值减去后面的数值再得出减后的数再赋值给变量y

In [6]: y -= 2.7In [7]: yOut[7]: 3.3

使用*=表示y变量的数值和后面数值返回相乘的结果再赋值给变量y

In [8]: y *= 5In [9]: yOut[9]: 16.5

使用/=表示y变量的数值除以后面的数得出的结果返回并赋值个变量y

In [10]: y /= 3In [11]: yOut[11]: 5.5

python算术运算符

python运算包含基本的四则运算:

+ 加运算  - 减运算  * 乘运算  /  除运算,除数加上小数点可以取得一个精确的浮点结果    //  整除  %   除运算取余  **   运算乘方

+   加运算

In [12]: 7 + 9Out[12]: 16

-    减运算

In [13]: 5 - 9Out[13]: -4

*    乘运算

In [14]: 0 * 1Out[14]: 0In [15]: 2 * 1Out[15]: 2

/    除运算,除运算加上小数点可以取得一个浮点数的运算结果

In [19]: 9.0 / 3Out[19]: 3.0In [20]: 10.0 / 3Out[20]: 3.3333333333333335

//   整除运算,不管是否有余数,只取整数结果

In [21]: 100 // 3Out[21]: 33

%  除运算取余数,运算后不要整数结果,只取值余数结果

In [22]: 100 % 3Out[22]: 1

**   乘方运算

In [24]: 100 ** 3Out[24]: 1000000

python关系运算符

关系运算符返回布尔值结果,true表示关系成立(如3等于3、3小于5),false表示关系不成立(如1大于2)

关系运算符常见的有六种:

> 大于                 < 小于

>= 大于等于       < = 小于等于

==  等于              !=不等于

布尔值返回示例:

In [38]: 1 > 2 1大于2Out[38]: FalseIn [39]: 1 = 2 1大于或等于2Out[40]: FalseIn [41]: 1 >= 1 1大于或等于1Out[41]: TrueIn [42]: 1 <= 2 1小于或等于2Out[42]: TrueIn [43]: 1 <= 1 1小于或等于1Out[43]: TrueIn [44]: 1 == 1 1等于1Out[44]: TrueIn [45]: 1 != 2 1不等于2Out[45]: True

逻辑运算符

and  逻辑与: true and false    两个表达式都成立返回true,有一个不成立就返回false

or 逻辑或 : false and true     两个表达式只要有一个成立就返回true

not 逻辑非  :  not true      表达式不成立返回true

逻辑运算:or逻辑运算:and逻辑运算:not成员测试:in,not in同一性测试:is,is not比较:,>=,!=,==按位或:|按位异或:^按位与:&移位:<>加减法:+,-乘法、除法和取余:*,/,%正负号:+x,-x按位翻转:  ~x指数: **

从键盘输入读取数值

input  从键盘读取输入,实现输入交互

input("Please input:")

%s   表示引用的变量数值,不同的%s表示不同位置的变量数值,最后一个%s等于两个变量(num1和num2运算的结果引用)

一个小的计算脚本示例:

[root@localhost src]# cat list.py#!/usr/bin/pythonnum1 = input("Please a number: ")num2 = input("Please a number: ")print "%s + %s = %s" % (num1, num2, num1+num2)print "%s - %s = %s" % (num1, num2, num1-num2)print "%s * %s = %s" % (num1, num2, num1*num2)print "%s / %s = %s" % (num1, num2, num1/num2)[root@localhost src]# python jisuan.pyPlease a number: 3Please a number: 43 + 4 = 73 - 4 = -13 * 4 = 123 / 4 = 0

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值