Cannot import name 'create_http_method_map' from 'falcon.routing'
As of 2018-03-18 executing pip install mailman
results in falcon version 2.0.0b1 being installed. This in turn causes the following error during Mailman startup:
> mailman start
Starting Mailman's master runner
Cannot import runner module: mailman.runners.rest.RESTRunner
Traceback (most recent call last):
File "/var/lib/mailman3/venv/lib/python3.7/site-packages/mailman/bin/runner.py", line 55, in make_runner
runner_class = find_name(class_path)
File "/var/lib/mailman3/venv/lib/python3.7/site-packages/mailman/utilities/modules.py", line 52, in find_name
module = import_module(module_path)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/var/lib/mailman3/venv/lib/python3.7/site-packages/mailman/runners/rest.py", line 27, in <module>
from mailman.rest.wsgiapp import make_server
File "/var/lib/mailman3/venv/lib/python3.7/site-packages/mailman/rest/wsgiapp.py", line 25, in <module>
from falcon.routing import create_http_method_map
ImportError: cannot import name 'create_http_method_map' from 'falcon.routing' (/var/lib/mailman3/venv/lib/python3.7/site-packages/falcon/routing/__init__.py)
According to https://falcon.readthedocs.io/en/stable/_modules/falcon/routing/util.html#create_http_method_map the method is deprecated. Either Mailman should use the replacement method map_http_methods
, or the installation process should limit falcon to a version < 2.0.