The requirements-latest.txt and requirements-min.txt files need to be updated to restrict the version of PyTrie crossbar depends on to pytrie>=0.3, <0.4.0, since version 0.4.0 drops python 2 support.
crossbar version output
$ crossbar version
/usr/local/lib/python2.7/dist-packages/OpenSSL/crypto.py:12: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
from cryptography import x509
__ __ __ __ __ __ __ __
/ `|__)/ \/__`/__`|__) /\ |__) |/ \
\__,| \\__/.__/.__/|__)/~~\| \. |\__/
Crossbar.io : 18.4.1 (Crossbar.io COMMUNITY)
Autobahn : 19.10.1 (with JSON, MessagePack, CBOR, UBJSON)
Twisted : 20.3.0-EPollReactor
LMDB : 1.0.0/lmdb-0.9.24
Python : 2.7.17/CPython
Frozen executable : no
Operating system : Linux-5.4.0-1028-aws-x86_64-with-Ubuntu-18.04-bionic
Host machine : x86_64
Release key : RWRoWUpWxaQIXo+I/gl5/ghE46xcFKM4YXQlHck9kRBNLQI+rElVETMF
Steps to reproduce
$ pip install crossbar
...
$ pip install pytrie==0.4.0
...
$ crossbar version
Traceback (most recent call last):
File "/usr/local/bin/crossbar", line 11, in <module>
sys.exit(run())
File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/cli.py", line 1114, in run
if options.personality not in get_installed_personalities():
File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/cli.py", line 67, in get_installed_personalities
from crossbar.controller.personality import Personality as CommunityPersonality
File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/personality.py", line 37, in <module>
from crossbar.controller.node import Node
File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/node.py", line 61, in <module>
from crossbar.router.router import RouterFactory
File "/usr/local/lib/python2.7/dist-packages/crossbar/router/router.py", line 44, in <module>
from crossbar.router.broker import Broker
File "/usr/local/lib/python2.7/dist-packages/crossbar/router/broker.py", line 46, in <module>
from crossbar.router.observation import UriObservationMap
File "/usr/local/lib/python2.7/dist-packages/crossbar/router/observation.py", line 34, in <module>
from pytrie import StringTrie
File "/usr/local/lib/python2.7/dist-packages/pytrie.py", line 48, in <module>
from collections.abc import MutableMapping
ImportError: No module named abc
The
requirements-latest.txt
andrequirements-min.txt
files need to be updated to restrict the version of PyTrie crossbar depends on topytrie>=0.3, <0.4.0
, since version0.4.0
drops python 2 support.crossbar version output
Steps to reproduce