大赵传奇

GIS解决方案,webgis , 桌面、数据、服务--QQ276605216

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

上文说到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:\test-data\data2.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:\PSTools\PsExec.exe "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" E:\site-saae-python\tools\test2.py'
out = check_output(['python', r'E:\site-saae-python\tools\test2.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\tools\test2.py'],universal_newlines=True, shell=True)
    print(out)
    return out

待查证。

 

posted on 2021-04-01 10:36  赵长青  阅读(209)  评论(0)    收藏  举报