首页 > 解决方案 > IIS 服务器中来自 PHP 的 Python [WinError -2147024891] 访问被拒绝

问题描述

我尝试在 IIS win 8.1 中使用 PHP 运行 Python 脚本以将 Docx 文件转换为 PDF

import sys
import os
import comtypes.client
import random
import string
import qrcode
import fitz
from PyPDF2 import PdfFileReader
import json
import base64
import getpass

errordata=0
_output=[]

# convert Docx file into pdf file
def word_to_pdf(_in):
    global errordata
    pdf_format_key = 17

    try:
        file_in = os.path.abspath(_in)
        head =os.path.split(_in)
        _out=str((head[0]+'\\'+os.path.splitext(head[1])[0]+'.pdf'))
        file_out = os.path.abspath(_out)

        worddoc = comtypes.client.CreateObject('word.application')
        doc = worddoc.Documents.open(file_in)
        print ("documnt open")
        doc.SaveAs(file_out,FileFormat=pdf_format_key)

        errordata=0
        _output.append('convert to PDF Success')
    except Exception as e:
        errordata=1
        _output.append('convert to PDF Error' + str(e))

    finally:    
        print(_output)
        if errordata==0:
            randid='_'+ id_generator(30, string.ascii_uppercase + string.digits)
            qr_generator(randid,_out)


word_to_pdf(sys.argv[1])

这就是我从 PHP 调用 python 的方式:

<?php
$result = shell_exec('C:\Users\IT\AppData\Local\Programs\Python\Python38-32\python C:\inetpub\wwwroot\PyTest\document_control.py C:\inetpub\wwwroot\PyTest\upload\testdoc.docx 2>&1');
echo($result);
?>

当我运行 PHP 它触发错误:[WinError -2147024891] Access is denied']

我从 cmd 管理员和 cmd 用户运行脚本脚本按预期运行

我尝试给每个人上传文件夹的读/写权限,但错误仍然存​​在

请大家帮帮我

标签: phpiis-8

解决方案


推荐阅读