Bogdanp / django_dramatiq

A Django app that integrates with Dramatiq.
https://dramatiq.io
Other
347 stars 77 forks source link

Failing getting submodules #54

Closed M1ha-Shvn closed 4 years ago

M1ha-Shvn commented 5 years ago

Hi. Task discovery fails, if 'tasks' inside django app has a submodule and it also have a submodule. In my case it was:

project
-- django_app
----__init__.py
----tasks
------__init__.py
------tests
--------__init__.py
--------test_tasks.py
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/vagrant/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django/core/management/base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django/core/management/base.py", line 353, in execute
    output = self.handle(*args, **options)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django_dramatiq/management/commands/rundramatiq.py", line 85, in handle
    tasks_modules = self.discover_tasks_modules()
  File "/home/vagrant/venv/lib/python3.7/site-packages/django_dramatiq/management/commands/rundramatiq.py", line 129, in discover_tasks_modules
    submodules = self._get_submodules(imported_module)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django_dramatiq/management/commands/rundramatiq.py", line 152, in _get_submodules
    sub_submodules = self._get_submodules(module_name)
  File "/home/vagrant/venv/lib/python3.7/site-packages/django_dramatiq/management/commands/rundramatiq.py", line 147, in _get_submodules
    package_path = package.__path__
AttributeError: 'str' object has no attribute '__path__'

Libraries versions (installed from pypi): django-dramatiq 0.8.0
dramatiq 1.7.0