Отлично работающий скрипт на python выдает ошибку при запуске из web.py - PullRequest
0 голосов
/ 14 июля 2011

У меня есть следующий скрипт Python, который отлично работает, если запустить отдельно:

import arcpy 

val = arcpy.GetCellValue_management("D:\dem-merged\lidar_wsg84", "-95.090174910630012 29.973962146120652", "")
print str(val)

Я хочу представить это как веб-сервис, поэтому я установил web.py и написал следующий код для code.py. но он выдает ошибки (при вызове. прекрасно компилируется).

import web
import arcpy        
urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):

        val = arcpy.GetCellValue_management("D:\dem-merged\lidar_wsg84", "-95.090174910630012 29.973962146120652", "")
        return  str(val)

if __name__ == "__main__":
    app.run()

Когда я вызываю это, используя http://localhost:8080,, я получаю следующую ошибку:

<class 'arcgisscripting.ExecuteError'> at /
ERROR 000582: Error occurred during execution.

Python  C:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\management.py in GetCellValue, line 8460
Web GET http://localhost:8080/
Traceback (innermost first)

C:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\management.py in GetCellValue
          be returned."""
    try:

        retval = convertArcObjectToPythonObject(gp.GetCellValue_management(*gp_fixargs((in_raster, location_point, band_index), True)))
        return retval
    except Exception, e:
        raise e ...
@gptooldoc('GetRasterProperties_management', None)
def GetRasterProperties(in_raster=None, property_type=None):
    """GetRasterProperties_management(in_raster, {property_type})
        Returns the properties of a raster dataset.

Я пытался отладить его многими способами, код .py работает нормально, если я просто возвращаю "привет". Библиотека, которую я использую, является библиотекой инструментов ArcGIS Geoprocessing.

Есть идеи, что может быть не так?

1 Ответ

0 голосов
/ 14 июля 2011

Это похоже на ошибку стороннего модуля. Попробуйте выяснить, что этот код ошибки (000582) на самом деле означает для приложения.

...