首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django中的arcpy不能运行

django中的arcpy不能运行
EN

Stack Overflow用户
提问于 2019-06-20 09:50:46
回答 2查看 230关注 0票数 0

我有一个使用arcpy模型的ArcGIS脚本。我想把它和Django结合起来。该脚本在控制台上运行成功,但是当使用Django运行时,我发现arcpy函数不能运行。所以我对它做了一个简单的测试,得到了相同的结果。

test.py

代码语言:javascript
复制
import arcpy
import os

def test_arcpy():
    tempFolder = arcpy.env.scratchFolder
    tempGDBPath = os.path.join(tempFolder, 'test.gdb')
    arcpy.env.overwriteOutput = True
    if not arcpy.Exists(tempGDBPath):
        arcpy.AddMessage('create..')
        arcpy.CreateFileGDB_management(tempFolder, 'test.gdb')
    return arcpy.Exists(tempGDBPath)

views.py

代码语言:javascript
复制
from django.http import HttpResponse
from . import test
def t(request):
    msg = str(test.test_arcpy())
    return HttpResponse(msg)

如果我在控制台中运行test.py,它会返回True.But。如果我在django中运行它,它总是返回false。如果我不能解决它,我就不能用django编写更难的脚本。你能帮帮我吗?我在Flask app with ArcGIS, Arcpy does not run中发现了类似的问题,但在这个问题中没有解决方案。

EN

回答 2

Stack Overflow用户

发布于 2019-06-20 14:09:09

我想我可以使用子进程模型在控制台中运行arcpy脚本,然后将控制台消息返回给django函数。但我真的很想知道arcpy是否可以使用django运行。

票数 0
EN

Stack Overflow用户

发布于 2020-05-28 19:47:35

我在Flask中遇到了和你一样的问题。

我检查了arcpy中的源代码,当我从Flask中触发arcpy.Exists()时,发现arcgisscripting.pyd文件中有一个bug。我失去了任何线索。在ESRI在线博客上搜索了一些案例后,我肯定发现这是arcpy中的一个bug。所以我建议你:

  1. 尝试更高版本的from multiprocessing import Queue, Process
  2. try。(我当前的版本是10.1)
  3. 尝试在控制台中运行您的代码
  4. 尝试运行像arcpy这样的消息队列以不使用该函数。在我的例子中,我避免在arcServer中使用arcpy.Exists()
  5. try来使用64位arcpy。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56677977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档