PHPとPythonのパワフル連携!仮想環境を使ってスムーズに実行する方法

PHPとPythonのパワフル連携!仮想環境を使ってスムーズに実行する方法 プログラミング

プログラミングにおいて、異なる言語間での連携は非常に重要です。
特に、最近ではPythonの重要性が増しています。

データ処理や機械学習の機能を活用する場合、Pythonは非常に強力です。
そうは言っても、Web開発でPythonがメインとなることはそうそう多くはないでしょう。

現在でも、PHPは多くのWeb開発において利用されています。
Laravelを使うと、本当に簡単にWebアプリケーションが開発できます。

そんなPHPとPythonの連携方法を説明します。
連携の方法としては、大きく分けて以下の方法があります。

  • スクリプト実行
  • API呼び出し(自作)

今回は、スクリプト実行について解説します。

Pythonの仮想環境とは?

スクリプト実行にせよ、API呼び出し(自作)にせよ、
Pythonの仮想環境については理解しておく必要があります。

Pythonの仮想環境は、プロジェクトごとに依存関係を隔離することができます。
異なるプロジェクト間でのライブラリのバージョン衝突を避けるための仕組みです。

プロジェクト間におけるライブラリのバージョン衝突を避けることは、確かに重要なことと言えます。
しかし、そもそもデフォルトのPythonを利用すべきではありません。

正確には、デフォルトのPythonの環境にpipでライブラリを追加してはいけません。
そのことについては、次の記事で詳しく説明しています。

したがって、いずれにしてもPythonの仮想環境の利用は必須と言えます。

PHPからPythonスクリプトを実行する

PHPからPythonスクリプトを実行するには、shell_exec関数を使用します。
この関数を用いることで、PHPスクリプト内からコマンドラインを介してPythonスクリプトを呼び出すことができます。

実際に、PHPからPythonを呼び出してみましょう。
そのためには、2つのファイルが必要となります。

まずは、Pythonのスクリプトからです。
実行したいPythonスクリプトを準備します。

例として、簡単な計算を行う以下のスクリプトを用意しましょう。

example.py

def main():
    result = 5 + 3  # 何らかの処理
    print(result)   # 結果を出力

if __name__ == "__main__":
    main()

次は、PHPのスクリプトです。
PHP側では、以下のようにshell_exec関数を使ってPythonスクリプトを呼び出します。

<?php
$pythonScript = '/path/to/example.py';
$pythonEnv = '/path/to/venv/bin/python';

$output = shell_exec("$pythonEnv $pythonScript");
echo "Result: " . $output;
?>

このコードは、指定されたPythonスクリプトを仮想環境内のPythonで実行し、結果を取得しています。
仮想環境内のPythonは、「$pythonEnv」になります。

上記のPHPを実行した結果は、以下。

ポイントとしては、仮想環境内のPythonのパスを指定するという点です。
Pythonに引数を渡したい場合は、次の記事が参考になります。

この方法により、PHPとPythonの強みを組み合わせることが可能です。
このことは、アプリケーションの機能を拡張し、柔軟な開発を行うことにつながります。

データ分析、画像処理、機械学習など、Pythonの強力な機能をPHPアプリケーション内で活用してみましょう。

タイトルとURLをコピーしました