在 php(网页)中运行 Python 脚本以写入现有的 excel
Posted
技术标签:
【中文标题】在 php(网页)中运行 Python 脚本以写入现有的 excel【英文标题】:Run Python Skript in php (webpage) to write into exisiting excel 【发布时间】:2021-07-04 06:48:50 【问题描述】:我已经编写了一个 Python 脚本,可以将一些内容写入现有的 Excel 列表 (openpyxl)。我需要开发一个 Web 应用程序,单击按钮后,必须运行正确的 Python 脚本。我在 Windows 计算机上使用服务器和程序。我将不胜感激。
Running Python scripts with Xampp --> 已经完成了。
我不需要网站上的任何输出,我只想执行 .py 文件,即写入我的 Excel 文件。
这是我的 .php 代码:
<?php
exec('python C:/xampp/htdocs/QMPlan/EU_YES.py');
?>
这是我的 .py 代码:
#!C:/Users/'myUser'/AppData/Local/Programs/Python/Python39/python.exe
import openpyxl
book = openpyxl.load_workbook('ISSDDE.xls')
sheet = book.get_sheet_by_name("General Description")
sheet['B9'] = "Yes"
book.save('ISSDDE.xls')
【问题讨论】:
那不可能是成功运行的Python代码。chmod +x EU_YES.py
不是有效的 Python。
考虑到您的脚本依赖于相对路径,您需要确保在执行程序时拥有正确的工作目录。当您像这样使用 PHP 运行它时,无法保证工作目录是什么。
好的,那么我必须把“chmod +x EU_YES.py”放在哪里?好的,但这是正确的完整路径...我不知道该怎么做...
您不需要chmod
任何东西,因为您没有尝试将事物作为可执行文件运行。您拥有的“使用 Xampp 运行 Python”说明在这里是一个红鲱鱼,因为您可以通过 PHP 运行 Python 脚本。
您是否收到任何错误消息?如果是这样,与我们分享会很有帮助。
【参考方案1】:
也许exec('python <path-to-your-python-file>')
但这意味着 PHP 与 python 文件在同一台机器上运行。
此外,您不能直接从浏览器运行它,您必须从您的服务器运行此代码。
【讨论】:
我已经用“exec ..”试过了。是的,我从我的服务器启动代码。当我打开我的 .php 页面时,我的 Excel 列表中没有任何反应。如果我单独启动我的 Python 文件,则会进行预期的更改... 听起来你需要好好调试一下。 您是否从您的服务器手动启动 python 文件?您是否在 localhost 上检查它?exec
的输出是什么?如果您使用 Xampp 运行 php,请查看 https://***.com/questions/42704846/running-python-scripts-with-xampp【参考方案2】:
这将假定您也可以在计算机的命令行上成功运行python
(即它在PATH
中)。如果不是,您需要将 python
更改为 Python 可执行文件的完整路径,例如C:/Users/User/AppData/Local/Programs/Python/Python39/python.exe
.
<?php
// Change directory to where the script is, so any relative paths are correctly resolved
chdir("C:/xampp/htdocs/QMPlan");
// Run the script and print the output, if any.
echo shell_exec("python EU_YES.py");
?>
至于 Python 脚本,您不需要 #!
shebang 行或 chmod
(这确实是语法错误)。一个普通的脚本应该可以。
import openpyxl
book = openpyxl.load_workbook('ISSDDE.xls')
sheet = book.get_sheet_by_name("General Description")
sheet['B9'] = "Yes"
book.save('ISSDDE.xls')
【讨论】:
不幸的是我仍然没有任何改进......所以我的Python“应用程序”位于“C:/Users/'myUser'/AppData/Local/Programs/Python/Python39/python.exe”和我的py。 “C:/xampp/htdocs/QMPlan/EU_YES.py”中的文件。我是否必须更改 chdir () 中的某些内容?因为我不明白“chdir”是做什么的...... 那么如果您在浏览器中访问该 PHP 文件会发生什么? 没有按预期输出,但 Excel 文件也没有变化... 如果你将print("Hello!")
添加到 Python 文件中,应该会得到输出。 (这是为了测试 Python 脚本是否被执行。)
您可能还希望将error_reporting(E_ALL);
添加到您的 PHP 文件中,并检查 XAMPP 错误日志。以上是关于在 php(网页)中运行 Python 脚本以写入现有的 excel的主要内容,如果未能解决你的问题,请参考以下文章
在 XAMPP (WINDOWS 8.1) 中作为脚本在 PHP 中运行 Python
如何在另一个目录中运行 python 脚本,而不将脚本写入磁盘?