marrow / mailer

A light-weight, modular, message representation and mail delivery framework for Python.
MIT License
279 stars 62 forks source link

Setting 'manager': 'dynamic' gives ImportError: No module named concurrent #9

Closed timblack1 closed 12 years ago

timblack1 commented 12 years ago

If I use the following config:

mail = Delivery({
        'manager': 'dynamic',
        …

I get the following traceback:

...
File '/home/tim/Documents/MyWebPages/arwd/projects/tg21env-dev/lib/python2.6/site-packages/marrow/mailer/__init__.py', line 62 in __init__
  self.Manager = Manager = self._load(config.manager, 'marrow.mailer.manager')
File '/home/tim/Documents/MyWebPages/arwd/projects/tg21env-dev/lib/python2.6/site-packages/marrow/mailer/__init__.py', line 86 in _load
  return entrypoint.load()
File '/home/tim/Documents/MyWebPages/arwd/projects/tg21env-dev/lib/python2.6/site-packages/pkg_resources.py', line 1991 in load
  entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File '/home/tim/Documents/MyWebPages/arwd/projects/tg21env-dev/lib/python2.6/site-packages/marrow/mailer/manager/dynamic.py', line 10 in 
  from concurrent import futures
ImportError: No module named concurrent

What fixed this for me was to run:

pip install futures

So I think futures needs to be added to marrow.mailer's requirements, at least for me. I'm running marrow.mailer in a Python 2.6 virtualenvironment on Ubuntu 11.04.

amcgregor commented 12 years ago

This is by design, though the error message needs to be made more clear. Not everyone will be using a futures-based thread pool model.