Skip to content

[Bug Report] Conflict between msgpack 1.0.0 and the deprecated msgpack-python #3251

@wangwwno1

Description

@wangwwno1

Bug report

  • AirSim Version: a0d4d0e
  • UE/Unity version: N/A
  • autopilot version: N/A
  • OS Version: N/A

What's the issue you encountered?

This package is deprecated. Install msgpack instead.

https://pypi.org/project/msgpack-python/
When users install both msgpack and airsim they will have both msgpack and msgpack-python installed, which conflict.
Edit: After further examination, I find that this issue is related to the msgpack-rpc-python.
They have a PR to fix this msgpack-rpc/msgpack-rpc-python#23 but by 2020.12.18 it hasn't merge yet.

Settings

N/A

How can the issue be reproduced?

  1. Install airsim, then install msgpack by pip install msgpack==1.0.2 Note: install msgpack, NOT msgpack-python, and msgpack must be newer than 1.0.0 as they change the api in this version.
  2. Run the code below and you will get an error
import airsim
client = airsim.MultirotorClient()
client.ping()

Include full error message in text form

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/airsim/client.py", line 44, in ping
    return self.client.call("ping")
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/session.py", line 41, in call
    return self.send_request(method, args).get()
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/session.py", line 51, in send_request
    self._transport.send_message([message.REQUEST, msgid, method, args])
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/transport/tcp.py", line 89, in send_message
    self.connect()
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/transport/tcp.py", line 98, in connect
    socket = ClientSocket(stream, self, self._encodings)
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/transport/tcp.py", line 53, in __init__
    BaseSocket.__init__(self, stream, encodings)
  File "/home/USER/anaconda3/envs/VeriFC/lib/python3.8/site-packages/msgpackrpc/transport/tcp.py", line 12, in __init__
    self._packer = msgpack.Packer(encoding=encodings[0], default=lambda x: x.to_msgpack())
  File "msgpack/_packer.pyx", line 124, in msgpack._cmsgpack.Packer.__init__
TypeError: __init__() got an unexpected keyword argument 'encoding'

What's better than filing an issue? Filing a pull request :).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions