Mar*_*ark 2 python django google-app-engine google-adwords
我正在使用django和Google App Engine.我无法确定错误来自何处,因为如果我在本地使用它我的网站正在运行.我在GAE上部署它后工作正常,但使用googleadwords api时出现此错误:
NotImplementedError: Only tempfile.TemporaryFile is available for use
at PlaceHolder (/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_dist/lib/python2.7/tempfile.py:45)
at __init__ (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/suds/cache.py:115)
at __init__ (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/suds/client.py:112)
at GetService (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/googleads/adwords.py:459)
at post (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/ksvt/views.py:47)
at dispatch (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/django/views/generic/base.py:88)
at view (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/django/views/generic/base.py:68)
at _get_response (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/django/core/handlers/base.py:185)
at _get_response (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/django/core/handlers/base.py:187)
at inner (/base/data/home/apps/f~xxxx/20180320t181216.408435502723573470/lib/django/core/handlers/exception.py:41)
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个错误的含义是什么?谢谢!
编辑:我认为生成错误的代码行.
adwords_client = adwords.AdWordsClient.LoadFromStorage(os.path.dirname(os.path.abspath(__file__)) + "//googleads.yaml")
Run Code Online (Sandbox Code Playgroud)
adwords库suds用于将SOAP消息发送到adwords API.suds包尝试缓存文件系统中的数据,这在App Engine标准环境中是禁止的.
Adwords包的自述文件描述了如何通过将虚拟缓存实现传递给adwords客户端来禁用缓存:
adwords_client = adwords.AdWordsClient(
developer_token, oauth2_client, user_agent,
client_customer_id=client_customer_id, cache=suds.cache.NoCache())
Run Code Online (Sandbox Code Playgroud)
(您需要导入suds.cache)
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |