簡體   English   中英

無法從 PHP (apache2) 執行 python 腳本

[英]Can't execute python script from PHP (apache2)

我想在我的 macos 上使用 apache2 從 PHP 文件執行 Python 腳本。 我能夠執行簡單的 python 腳本,例如:

來自 PHP:

$result = shell_exec("python /Library/…./example.py '$name' ‘$email’ ”);
var_dump($result);

至 Python

import sys

x = sys.argv[1]
y = sys.argv[2]

print("name: " + x + "<br>")
print("email: " + y + "<br>")

output 是:

在此處輸入圖像描述

但是當我嘗試導入包時:

import openpyxl
import numpy as np
import matplotlib.pyplot as plt

我得到:

在此處輸入圖像描述

我的問題是,有誰知道:

1 – 我怎樣才能使這些(和任何其他)包工作?

2 – shell_exec 當前正在執行 python2。 如何添加 python3?(如果我寫 python3 而不是 python 將不起作用)

如果將來有人遇到同樣的問題,這就是我發現的。

通過 shell_exec 執行一些不同的命令,我注意到它的行為與我的終端不同。

在此處輸入圖像描述

所以我發現當我在 shell_exec 上執行 python3 時,它沒有指向正確的地址,那么我所要做的就是傳遞正確的地址:

$result = shell_exec("/Library/Frameworks/Python.framework/Versions/3.7/bin/python example.py '$name' ‘$email’ ”);
var_dump($result);

現在腳本可以工作了:)

不要使用整個文件路徑,而是將文件路徑放在環境變量中,以便隨時隨地訪問 python / python3 程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM