gpt4 book ai didi

python - 泡沫:谷歌应用引擎支持

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:32 25 4
gpt4 key购买 nike

我正在尝试在 python Google App Engine 应用程序中使用 suds。这是回溯:

client = Client(url)
File "/base/data/home/apps/sandbox/test.349741318547153856/suds/client.py",
line 109, in __init__
options.cache = ObjectCache(days=1)
File "/base/data/home/apps/sandbox/test.349741318547153856/suds/cache.py",
line 141, in __init__
location = os.path.join(tmp(), 'suds')
File "/base/python_runtime/python_dist/lib/python2.5/tempfile.py",
line 45, in PlaceHolder
raise NotImplementedError("Only tempfile.TemporaryFile is
available for use")
NotImplementedError: Only tempfile.TemporaryFile is available for use

我尝试更改 client.py 中的第 109 行:

options.cache = ObjectCache(days=1)

到:

options.cache = None

现在可以使用了,但我不确定这是否会影响 future 。

如果有人能在这里帮助我,我真的很感激。

提前致谢。

最佳答案

您无法在 AppEngine 中写入本地文件。这就是为什么您会收到该错误,它试图将已处理的 WSDL 缓存写入临时文件。您将不必缓存或提供备用缓存机制。我在 appengine 上使用 suds 和一个非常昂贵的 WSDL 文件,所以我破解了缓存以将缓存写入开发服务器文件系统,然后使用部署的代码上传缓存。

我作弊 - 有点。

def precache_wsdl(wsdl,principal):
log = logging.getLogger()
log.setLevel = logging.info
cache_location = os.path.join(os.path.dirname(__file__),"cache")
security = Security()
token = UsernameToken(*principal)
security.tokens.append(token)
client = Client(wsdl,cache=FileCache(cache_location))
client.set_options(wsse=security)

我在我的应用引擎代码中定义了这段代码。加载远程命令 api,在本地运行,预填充缓存。然后我确定 cach_location 在我的真实应用引擎代码中设置正确。当您在 remote_api shell 中运行时,您运行的限制与服务器代码不同。事实上,您甚至不必在 shell 下运行它,但我倾向于那样做。

关于python - 泡沫:谷歌应用引擎支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com