[英]executing python script from php under windows
好的,這適用於我的 linux 服務器,但我正在家里的 PC 上測試我的網站,並試圖讓 php 執行我的 python 腳本,當然 \\ 是 WINDOWS 只有當我在我的 linux 機器上時路徑會發生變化。
$pyscript = 'C:\\wamp\\www\\testing\\scripts\\imageHandle.py';
$python = 'C:\\Python27\\python.exe';
$filePath = 'C:\\wamp\\www\\testing\\uploads\\thumbs\\10-05-2012-523.jpeg'
exec('$python $pyscript $filePath', $output, $return );
這適用於我的 linux 機器,但不適用於我的 Windows 測試服務器。 如何讓它在 Windows 上運行? 哦,這也適用於直接從 Windows 中的命令提示符運行
編輯:
這是解決方案:
exec("$python $pyscript $filePath", $output);
我之前用單引號代替雙引號,把單引號改成雙引號解決了這個問題。
我覺得奇怪的是C:\\\\wamp\\\\....
的 filePath 可以在 Linux 機器上工作。 無論如何,你有沒有試過不逃避斜線?
該問題可能與幾件事有關,包括實現不同程序執行功能的操作系統特定方法。 我建議只查看不同的選項,我總是將命令放入一個變量中,然后打印出該變量,以便我可以看到我將要運行的內容,如果您看到兩個斜杠,那么您可能知道沒有需要嘗試逃避斜線,但是如果不將其打印到屏幕上,您就不會知道。
嘗試查看其他流程執行功能,看看哪些功能適合您。 http://www.php.net/manual/en/ref.exec.php
我發現最像在命令行中運行它的方法是反引號運算符,然后是system
嘗試這樣的事情。
$pyscript = 'C:\\wamp\\www\\testing\\scripts\\imageHandle.py';
$python = 'C:\\Python27\\python.exe';
$filePath = 'C:\\wamp\\www\\testing\\uploads\\thumbs\\10-05-2012-523.jpeg'
$cmd = "$python $pyscript $filePath";
echo $cmd;
`$cmd`
$pyscript = 'C:\wamp\www\testing\scripts\imageHandle.py';
$python = 'C:\Python27\python.exe';
$filePath = 'C:\wamp\www\testing\uploads\thumbs\10-05-2012-523.jpeg'
$cmd = "$python $pyscript $filePath";
echo $cmd;
`$cmd`
編輯:啊! 我剛剛想通了,你用單個勾號 '' 包圍了你的命令,這意味着里面的變量沒有被替換。 請改用雙引號。 這將解決問題,但我仍然建議您在運行之前回顯該命令,以便您可以看到正在運行的命令,並且您將能夠識別出這樣的問題。
這是一個非常古老的線程,但仍然出現在谷歌的第一個結果中,所以值得更新。
2020 年,在Python 3.8
和Windows 10
,正確的解決方案很簡單:
<?
$output = shell_exec('C:\path\to\pythonscript.py');
print ($output);
?>
其他一切都會導致錯誤。 我花了好幾個小時才弄清楚。
在 XAMPP SERVER 中,我的 index.py 文件就像
from wordsegment import load, segment
load()
print(segment('morerecentlythedevelopmentwhichisapotent'))
我的 index.php 文件就像
<html>
<head>
<title>py script</title>
</head>
<body>
<h1>Hey There!Python Working Successfully In A PHP Page.</h1>
<?php
$python = `python index.py`;
echo $python;
?>
</body>
</html>
現在運行 index.php 文件。
Hope this will help you
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.