php - 在windows下从php执行python脚本

标签 php python command-line

好的,这适用于我的 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\\.... 的文件路径在 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` 

编辑:啊啊!我刚刚弄明白了,你用单个勾号包围你的命令,这意味着里面的变量没有被替换。请改用双引号。这将解决问题,但我仍然建议在运行之前回显命令,以便您可以看到正在运行的命令,并且能够识别这样的问题。

关于php - 在windows下从php执行python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545239/

相关文章:

php - 比较对象属性并在 PHP 中显示差异

php - 有什么方法可以让 PHP 详细加载类,指示 .php 文件的完整路径?

python - 方面,并根据方面进行一些过滤

python - 如何使用 python 反向补充多序列 fasta 文件?

Python Pandas - 如果第二个数据帧中没有值,则从第一个数据帧中删除值

command-line - dos批处理迭代定界字符串

ios - Xcode-命令行构建

php - 使用变量时无法回显表值

java - 线程 "main"java.lang.NoClassDefFoundError : org/json/simple/JSONObject - java commandline runtime error 中出现异常

php - 左对齐和右对齐CSS中的一个元素内容