ホームページ  >  記事  >  バックエンド開発  >  PHP で Python スクリプトを実行する方法についての簡単な説明

PHP で Python スクリプトを実行する方法についての簡単な説明

青灯夜游
青灯夜游転載
2021-03-22 18:42:184375ブラウズ

この記事では、PHP で Python スクリプトを実行する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP で Python スクリプトを実行する方法についての簡単な説明

注: この問題が発生した環境は、Windows 環境で Python スクリプトを呼び出すには IIS PHP を使用することが推奨されており、その前提が失敗します。お使いの環境がこの質問の環境と一致しない場合。自動的に回避してください。

製品需要分析が一定の段階に達すると、さまざまな部門間で一定の調整が必要になります。そして、フルスタック開発を行う場合には、これらを総合的に調整する必要があります。また、バックグラウンドでさまざまなモジュールとさまざまな開発言語を同時にアクティブにする必要もあります。

まず、バックグラウンドは IIS PHP 環境を使用し、Windows 上で実行されます。 PHP を通じて Python プログラムを呼び出します。

まず問題について話しましょう。Python と PHP の両方がシステムの環境変数に追加されている (そして cmd モードで通常どおり実行できる) という前提の下で、a.php を実行して 1.py## を呼び出します。

#PHP

コード (a.php)

$result = exec("py 1.py");
var_dump($result);

Python コード (1.py)

print("123");
fl=open('test3.txt', 'w')
fl.write("5,5,5,1,2,3")
fl.close()

2 つのディレクトリ ファイルは次のとおりです。同じディレクトリ。また、IIS には十分な実行権限があるのですが (問題を再現するために、最も単純なコードを作成しました)、実行エラーが発生しました。

その後、PHP コードを改善し、exec 関数実行のエラー ステータス コードを確認しました。

$result = exec("py 1.py", $array, $ret);
var_dump($result);
var_dump($array);
var_dump($ret);

エラー コードは 103 (実行エラー)であることがわかりました。

[推奨研究: "

PHP ビデオ チュートリアル >>]

今回は、exec 関数の bash を標準出力に変更しました (特定のエラー メッセージを確認するため)

PS: bash 0 では、3 つの数字 1 と 2 は STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO を表します。これらは、標準入力 (通常はキーボード)、標準出力 (通常はディスプレイ画面、または正確にはユーザー端末コンソール)、および標準error(エラー情報出力)

$result = exec("py 1.py 2>error.txt", $array, $ret);
var_dump($result);
var_dump($array);
var_dump($ret);

今回の実行後、error.txt を開くと、「デフォルトの Python が見つかりません。」というエラーが表示されました (ただし、環境変数に python を追加し、 py file in cmd state) )、表現できないエラーが発生したような気がします。環境変数や実行権限などのエラーを十分に確認した後。 exec の実行文を無意識のうちに

"python 1.py 2>error.txt"

に変更してしまいました。 今回出たエラーは ['python' は内部コマンドでも外部コマンドでも、操作可能なプログラムやバッチ ファイルでもありません。 】このコンピュータには独自のアイデアがあるのではないかとさえ疑った。すべての情報を確認した直後です。 PHP が IIS サーバー上で実行されているのに、IIS がすべてのユーザー権限を持っていないことが原因ではないかと突然思いつきました (これは、IIS Web サイト構築ディレクトリ権限制御の長所でもあり、短所でもあります)。前の error.txt ファイルで報告されたエラーと組み合わせます。コードにいくつかの変更を加えます。

$res = exec("你python的安装绝对路径/python.exe 1.py 2>error.txt", $array, $ret);
var_dump($result);
var_dump($array);
var_dump($ret);

次に、Python ファイルの下にあるすべてのファイルのユーザー所有者に、IIS ユーザー コントロールの実行可能アクセス許可を追加します。

今回は、PHP が Python 実行可能ファイル exe を見つけて、コードを正常に実行できました。

追記: IIS Windows はまさにブラックホールです。

プログラミング関連の知識について詳しくは、

プログラミング ビデオをご覧ください。 !

以上がPHP で Python スクリプトを実行する方法についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。