diff --git a/src/pretix/helpers/importlib.py b/src/pretix/helpers/importlib.py new file mode 100644 index 0000000000..c839b9969e --- /dev/null +++ b/src/pretix/helpers/importlib.py @@ -0,0 +1,9 @@ +import importlib.util +import sys + + +def module_exists(modname): + if sys.version_info[0:1] >= (3, 4): + return bool(importlib.util.find_spec(modname)) + else: + return bool(importlib.find_loader(modname)) diff --git a/src/pretix/urls.py b/src/pretix/urls.py index ebda5b5a63..355809b6df 100644 --- a/src/pretix/urls.py +++ b/src/pretix/urls.py @@ -1,4 +1,4 @@ -import importlib.util +import importlib from django.apps import apps from django.conf import settings @@ -6,6 +6,7 @@ from django.conf.urls import include, url import pretix.control.urls import pretix.presale.urls +from pretix.helpers.importlib import module_exists urlpatterns = [ url(r'^control/', include(pretix.control.urls, namespace='control')), @@ -22,7 +23,7 @@ if settings.DEBUG: pluginpatterns = [] for app in apps.get_app_configs(): if hasattr(app, 'PretixPluginMeta'): - if importlib.util.find_spec(app.name + '.urls'): + if module_exists(app.name + '.urls'): urlmod = importlib.import_module(app.name + '.urls') pluginpatterns.append( url(r'', include(urlmod, namespace=app.label))