在使用源码安装Python3之前,要保证系统中已经成功安装了gcc包:
第一步:下载gcc相关的安装文件:
下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=cloud-utils
下载以下文件:
cpp-4.8.2-16.el7.x86_64.rpm
gcc-4.8.2-16.el7.x86_64.rpm
glibc-2.17-55.el7.x86_64.rpm
glibc-common-2.17-55.el7.x86_64.rpm
glibc-devel-2.17-55.el7.x86_64.rpm
glibc-headers-2.17-55.el7.x86_64.rpm
glibc-static-2.17-55.el7.x86_64.rpm
glibc-utils-2.17-55.el7.x86_64.rpm
kernel-headers-3.10.0-123.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm
第二步:创建目录rpm_tmp
mkdir rpm_tmp
第三步:将以上文件上传到rpm_tmp
第四步:执行安装操作
cd rpm_tmp
rpm -Uvh *.rpm --nodeps --force
运行此命令会根据依赖按照顺序安装rpm
注:
–nodeps rpm在安装包时,不检查依赖关系,例如安装B,B依赖C导致无法安装,使用–nodeps就可以安装成功
–force 强制安装
第五步:验证安装结果
gcc安装引用自:https://www.cnblogs.com/ilvutm/p/10772432.html
开始安装Python3
yum -y install openssl-devel #要使用pip3需要安装这个软件
tar zvxf Python-3.8.5.tgz
cd Python-3.8.5
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 #建立一个pip3的链接,方便安装py模块
python3 --version
有时候解压后,文件的属主属组不是root,这里可以做一下更改
chown -R root:root Python-3.8.5
最终安装成功后的截图:
下载:https://www.python.org/downloads/source/
安装时一般需要先安装依赖,gcc跟zlib安装时会安装其他的依赖,安装完这两个后,基本就可以编译Python了
yum install -y gcc
yum install -y zlib*
设置环境变量:
有两种方式,一是配置软连接,二是配置path的环境变量(优先选择)
echo $PATH查看环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#这个变量赋值操作,只是临时生效,需要写入到文件,永久生效
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
#linux有一个全局个人配置文件
编辑这个文件,在最底行写入PATH
vim /etc/profile
写入
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
保存退出
读一下这个/etc/profile 使得生效
source /etc/profile
在Linux下运行程序
程序写完后,我们需要放到Linux系统下去运行,我们如何去运行呢?一共有两种办法
1、直接使用python xxxx.py执行。其中python可以写成python的绝对路径。使用which python进行查询。
2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果。
再用chmod改变文件的执行权限,然后在外面就可以使用./xxx.py或xxx.py执行了。
linux下python程序后台运行,并将打印信息保存文件
在跑比较时间比的程序,或者是打印信息比较多的程序时,一般都会后台运行程序,然后把打印信息保存在文件中,等程序运行结束后再检查输出日志。完成该功能可以用如下命令:
nohup python3 -u test.py > test.log 2>&1 &
其中,
1. 最后一个“&”表示后台运行程序
2. “nohup” 表示程序不被挂起
3. “python”表示执行python代码
4. “-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
5. “test.py”表示python的源代码文件
6. “test.log”表示输出的日志文件
7. “>”表示将打印信息重定向到日志文件
8. “2>&1”表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
启用成功后可以查看程序是否运行:
1.输入如下指令
ps -ef|grep python
定时删除log日志的部署方法
nohup python3 -u clean_outlog_file.py > /xxx/xxx/test.log 2>&1 &
#!/user/bin/python3
# -*- coding: UTF-8 -*-
import os
import time
# clean_path = r'C:\Users\lenovo\Desktop\test'
clean_path = r'/opt'
# 遍历指定的目录文件,查找out.log文件,并判断该文件的大小;
# 如果文件size>262144000(即250M),就将清空
def file_path(path):
for root, dirs, files in os.walk(path):
for file in files:
if file == 'out.log':
outlog_path = os.path.join(root, file)
size = os.path.getsize(outlog_path)
if size >= 262144000:
# 删除out.log文件,并重新创建
os.remove(outlog_path)
print('已经删除')
if not os.path.exists(outlog_path):
f = open(outlog_path, 'w')
print(outlog_path)
f.close()
print('创建成功')
if __name__ == '__main__':
while True:
file_path(clean_path)
# 半个小时循环查找一次
time.sleep(18000)
安装第三方时出现的问题
我再安装完成Python3后进行阿里云段短信包的安装,结果报错,no module named ‘_ctypes’
需要先安装这两个包:libffi libffi-devel 下载地址:https://pkgs.org/search/?q=libffi
附 rpm 一些安装参数
rpm -Uvh *.rpm –oldpackage 降级安装
rpm -ivh *.rpm –force 忽略冲突
rpm -ivh *.rpm –nodeps 不验证依赖关系
rpm -ivh libffi-3.0.13-19.el7.x86_64.rpm
rpm -ivh libffi-devel-3.0.13-19.el7.x86_64.rpm
先安装 libffi 再安装libffi-devel ,安装libffi时如果报错冲突file /usr/lib64/libffi.so.6 from install of libffi6-1:3.2.1-alt2.x86_64 conflicts with file from package libffi-3.0.13-18.el7.x86_64
就使用 –force 命令,强制安装
rpm -ivh libffi-3.0.13-19.el7.x86_64.rpm --force
安装完成后,要重新编译Python才可以生效
cd Python-3.8.5
make install
这时再去安装第三方库,就不会报错了