• flask在 iis中使用subprocess.check_output问题


    上文说到flask 可以通过wfastcgi.py 部署到iis 中,但我的项目必须使用arcpy, 不好使用linux平台,又由于其中flask 与arcpy的交互诡异问题,不得不采用外部调用 xxx.py文件方式获取结果

    所以才有了使用subprocess.check_output方式调用

    但在测试中发现单独的check_output 正常输出,在flask接口中却返回 500 服务器内部错误。多方查证,可能的原因是iis_user对cmd.exe 的权限不足,但几次设置文件夹权限之后仍无济于事。难道本身IIS 因安全问题限制此种方式调用?

    待查证。

    #coding:utf-8
    import os
    import arcpy
    import time
    import random
    import sys
    from arcpy import env
    
    print('start')
    gdb = r'E:	est-datadata2.gdb' #str(sys.argv[1])
    
    arcpy.ClearWorkspaceCache_management()
    arcpy.env.workspace=gdb
    fc = arcpy.ListFeatureClasses()
    for f in fc:
        print(f)
    print('over')
    View Code

    #coding:utf-8
    import os
    import subprocess
    from subprocess import check_output
    
    sentence=r'C:PSToolsPsExec.exe "C:Program FilesArcGISProinPythonenvsarcgispro-py3python.exe" E:site-saae-python	ools	est2.py'
    out = check_output(['python', r'E:site-saae-python	ools	est2.py'],universal_newlines=True, shell=True)
    print(out)
    View Code

     即是这句:

    @app01.route('/test02', methods=['GET'])
    def test02():
        out = check_output(['python', r'E:site-saae-python	ools	est2.py'],universal_newlines=True, shell=True)
        print(out)
        return out

    待查证。

  • 相关阅读:
    npm安装Vue及配置
    Node.js安装
    代码优化总结
    Java 读取文件指定行数的数据
    Navicat Premium 15 v15.0.17 数据库开发工具 安装激活详解
    发现了一个关于 gin 1.3.0 框架的 bug
    802.1X 账号密码+设备信息双重认证
    Vue项目入门(一)
    WPF登录界面
    使用“user32.dll”控制窗体
  • 原文地址:https://www.cnblogs.com/yansc/p/14605192.html
Copyright © 2020-2023  润新知