我正在使用CherryPy来生成和解析php网页的数据,但是收到一个我无法在本地或通过SSH复制的错误(登录到服务器并从提示符运行python脚本工作正常)。
当前的粘性错误消息是:
File "modules/flex.py", line 335, in convert
ref_data = cPickle.load(f2)
AttributeError: 'module' object has no attribute 'Data'
另一个pickle在前一行中加载正常,并且两个pickle都表示具有各种词典和列表列表的类对象。但其中一个是作品,另一个则没有。
通常使用CherryPy,隔离错误消息的最佳方法是什么?我可以从它的URL运行/ cp / function,我可以查看webserver错误日志,但即使这两个也不总是给出错误消息(或正确的错误)。
另一方面,在php中,我使用此代码检索表示python列表列表的json对象:
$obj = file_get_contents($senddata);
$sue = json_decode($obj);
这是可接受的方法吗?从python数据结构传递和生成php数组的最佳方法是什么?
答案 0 :(得分:1)
我认为你有不同的问题:
您的代码无效,因为PYTHONPATH(sys.path
)不一样
在你的python解释器中,当你通过ssh和python连接时
正在运行以服务webapp。我这样说是因为你想要反序列化
来自模块的数据,它确实存在(否则将是ImportError
)
但是没有class
的{{1}}声明,可能是一个相同的文件
名称,因为该模块位于同一目录中并尝试查找Data
在那个文件中。序列化时,不要保存类声明,只是如何
重建那个对象。
对于“正确的错误”是什么意思?,环境时 是“生产”,CherryPy默认记录最后一个错误的回溯, 您当然可以使用custom error handling更改默认行为。
您应该坚持使用JSON进行语言之间的通信,这是非常标准的 并且有效地进行双方解析。
我希望有所帮助。