解决方案:我的Python文件崩溃了,没有任何输出,我能够通过try / except进行诊断,但打印出了错误消息。糟糕!
我有一个Windows 2012R2 IIS服务器,用于显示GitHub存储库中存在的网站。从回购中拉出页面后,我需要使用Python脚本进行处理,到目前为止,作为计划任务每天要发生两次。用户希望能够通过单击站点管理面板中的按钮来运行用于更新/处理文件的批处理文件。为此,我创建了一个PHP页面,该页面应该执行计划任务使用的同一批处理文件。我遇到的问题是,当批处理运行时,可以很好地执行git命令,但Python脚本无法运行。
我已经尝试使用exec(),system()和shell_exec()运行批处理文件。我还尝试从运行批处理文件的powershell脚本运行批处理文件。我猜想PHP没有运行Python文件所需的权限。这就是为什么我也尝试通过shell_exec将Admin凭据传递到Powershell的原因。所有这些都失败了。
这里是观看批处理文件的样子
cd C:\inetpub\wwwroot
git fetch --all
git reset --hard master
git pull https://username:password@github.com/user/repo_name
cd C:\inetpub
C:\Python37\python C:\inetpub\api_replace.py
这是我目前在PHP文件中拥有的。
<?php
session_start();
if(!isset($_SESSION["admin"]) || $_SESSION["admin"] !== true){
header("location: login.php");
exit;
}
$shellout = shell_exec('powershell C:\inetpub\refresh_pages.bat server_name\Administrator password');
echo $shellout
?>
我还尝试过直接通过exec(),system()和shell_exec()运行Python文件。
git pull的结果显示在页面上,但是Python文件中的所有print语句都没有。必要的文件处理也不会发生。
答案 0 :(得分:0)
解决方案:我的Python文件崩溃了,没有任何输出,我能够通过try / except进行诊断,但打印出了错误消息。糟糕!