以编程方式检查PHP是否使用Python安装


Programmatically check if PHP is installed using Python

使用python,如何检查我的服务器上是否安装了PHP(CentOS 6.4)?大多数谷歌搜索的资源指向相反的方向,即检查python模块是否安装在PHP中。

是否有任何方法可以使用Python检查服务器上是否安装了PHP(任何版本)?

编辑:我已经编写了一个bash脚本,它只调用php -v,并且可以从python中调用,但在python中有其他直接方法吗?

您可以使用子流程检查它是否可以执行命令。

import subprocess as sp
def hasPHP():
    try:
        sp.check_call(['php', '-v'])
        return True
    except:
        return False

然后您可以调用hasPHP()来获取TrueFalse


注意:虽然通常最好指定错误类型,以及可能出现的各种错误(不同的操作系统等),但将其排除在外更有意义。


关于as语法:

此行:

import subprocess as sp

基本上是这样做的(稍微复杂一点):

import subprocess
sp = subprocess
del subprocess

用不太正式的术语来说,它为一个长模块名称提供了一个别名。

怎么样:

from os import system
php = system('php --version')
if php != 0:
    print 'Missing: PHP'

如果安装,您会发现一个php二进制/usr/bin/php/usr/local/bin/php

要检查路径是否为现有文件:

os.path.isfile(path)

如果路径已存在,则返回True常规文件。这遵循符号链接,因此islink()isfile()可以为真路径