В Python появилось много проблем со Spyne - PullRequest
1 голос
/ 09 апреля 2020

Ну, вот мой Python код:

#!/usr/bin/env python
from spyne import Application, rpc, ServiceBase, Unicode
from lxml import etree
from spyne.protocol.soap import Soap11
from spyne.server.wsgi import WsgiApplication
# Wsgi это Web server Getewap Interface - стандар взаимодействия с питон программой и серверо где он работает

class Soap(ServiceBase):
    @rpc(Unicode, _return=Unicode)
    def Insoap(ctx, words):
        print("Connection detected: ", etree.tostring(ctx.in_document))
        ww = str(words).capitalize()
        return ww

app = Application([Soap], tns='Capitalize', in_protocol=Soap11(validator='lxml'), out_protocol=Soap11())
application = WsgiApplication(app) # Важна названия переменной, иначе сервер не поймет


if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    server = make_server('localhost', 8002, application)
    server.serve_forever()

Но получите эту ошибку, в чем проблема? Что я должен сделать для решения? Пожалуйста, помогите мне решить эту проблему

Traceback (most recent call last):
  File "C:/Users/David374/PycharmProjects/untitled8/venv/test.py", line 3, in <module>
    from spyne import Application, rpc, ServiceBase, Iterable, UnsignedInteger, \
  File "C:\Users\David374\PycharmProjects\untitled8\venv\lib\site-packages\spyne\__init__.py", line 63, in <module>
    from spyne.server import ServerBase, NullServer
  File "C:\Users\David374\PycharmProjects\untitled8\venv\lib\site-packages\spyne\server\__init__.py", line 23, in <module>
    from spyne.server.null import NullServer
  File "C:\Users\David374\PycharmProjects\untitled8\venv\lib\site-packages\spyne\server\null.py", line 69
    self.service = _FunctionProxy(self, self.app, async=False)
                                                  ^
SyntaxError: invalid syntax

1 Ответ

1 голос
/ 09 апреля 2020

async - зарезервированное ключевое слово в Python 3.7+, и вам нужно будет использовать последнюю версию Spyne, которая не использует это зарезервированное ключевое слово в качестве параметра в своих функциях, если вы хотите использовать с Python 3.7 +.

Либо обновите Spyne до spyne-2.13.2-alpha, либо используйте Python 3.6 или ниже.

Источники:

...