Linux下Python3的安装

  • Post author:
  • Post category:linux

在使用源码安装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

这时再去安装第三方库,就不会报错了

 

 

 

引用地址:https://www.cnblogs.com/mmyy-blog/p/11108950.html

https://www.cnblogs.com/wqzn/p/10192778.html


版权声明:本文为weixin_43054437原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。