Используя python, как бы проверить, установлен ли PHP на моем сервере (CentOS 6.4)? Большинство ресурсов в googled указывают в противоположном направлении, то есть проверить, установлен ли модуль python в PHP.
Есть ли способ проверить, установлен ли PHP (любая версия) на сервере с помощью Python?
EDIT: Я написал сценарий bash, который просто вызывает php -v
и может быть вызван изнутри python, но есть ли другой способ в Python напрямую?
Вы можете использовать подпроцесс, чтобы проверить, может ли он выполнить команду.
import subprocess as sp def hasPHP(): try: sp.check_call(['php', '-v']) return True except: return False
Затем вы можете вызвать hasPHP()
чтобы получить либо True
либо False
.
Примечание: в то время как обычно лучше указать тип ошибки, множество ошибок, которые могут возникнуть (разные операционные системы и т. Д.), Имеет смысл оставить это.
О синтаксисе:
Эта строка:
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 binary /usr/bin/php
или /usr/local/bin/php
Чтобы проверить, является ли путь существующим файлом:
os.path.isfile(path)
Вернуть
True
если путь – это существующий обычный файл. Это следует за символическими ссылками, поэтому обаislink()
иisfile()
могут быть истинными для одного и того же пути.