Как использовать api paralledots в движке приложения? - PullRequest
0 голосов
/ 17 марта 2019

Я хочу проверить сходство текста с помощью API-интерфейса Paralleldots в обработчике приложения, но при установке ключа API в обработчике приложения с помощью.

paralleldots.set_api_key("XXXXXXXXXXXXXXXXXXXXXXXXXXX")

Ошибка приложения движка приложения:

    with open('settings.cfg', 'w') as configfile:
  File "/home/ulti72/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/stubs.py", line 278, in __init__
    raise IOError(errno.EROFS, 'Read-only file system', filename)
IOError: [Errno 30] Read-only file system: 'settings.cfg'
INFO     2019-03-17 10:43:59,852 module.py:835] default: "GET / HTTP/1.1" 500 -
INFO     2019-03-17 10:46:47,548 client.py:777] Refreshing access_token
ERROR    2019-03-17 10:46:50,931 wsgi.py:263] 
Traceback (most recent call last):
  File "/home/ulti72/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/ulti72/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/ulti72/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/home/ulti72/Desktop/koda/main.py", line 26, in <module>
    paralleldots.set_api_key("7PR8iwo42DGFB8qpLjpUGJPqEQHU322lqTDkgaMrX7I")
  File "/home/ulti72/Desktop/koda/lib/paralleldots/config.py", line 13, in set_api_key
    with open('settings.cfg', 'w') as configfile:
  File "/home/ulti72/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/stubs.py", line 278, in __init__
    raise IOError(errno.EROFS, 'Read-only file system', filename)
IOError: [Errno 30] Read-only file system: 'settings.cfg'

1 Ответ

1 голос
/ 17 марта 2019

API paralleldots, похоже, хочет сохранить файл settings.cfg в локальной файловой системе в ответ на этот вызов.Что не разрешено в стандартном окружении 1-го поколения и разрешено только для файлов в /tmp файловой системе во 2-м поколении .

Разработан локальный сервер разработкидля стандарта 1-го поколения env и применяет ограничение с этой ошибкой.Он имеет ограниченную поддержку env 2-го поколения, см. Python 3.7 Параметры локального сервера разработки для новых приложений движка приложений .

Что нужно попробовать:

  • проверить, еслиуказание местоположения settings.cfg поддерживается и, если это так, сделать его находящимся в /tmp. Может быть, локальный сервер разработки позволяет это сделать, или вы переключаетесь на какой-то другой метод локальной разработки, кроме сервера разработки.
  • проверьте, поддерживается ли сохранение настроек с использованием уже открытого обработчика файлов, и, если да,используйте файл, полученный из клиентской библиотеки Cloud Storage, примерно так: Как заархивировать или скопировать статическую папку, ничего не записывая в файловую систему в python?
  • проверить, поддерживает ли set_api_key()какой-то другой способ сохранения ключа API, кроме сохранения настроек в файл
  • , проверьте, можно ли указать ключ API для каждого последующего вызова, чтобы вам не приходилось сохранять его с помощью set_api_key() (возможно, с использованиемобщая функция обертки для удобства)
...