2016-10-31 2 views
1

Когда я пытаюсь запустить приложение django в openshift, я получаю следующее сообщение. Следовательно, развертывание завершается неудачей ...Ошибка импорта Django 'no module django'

File "wsgi/djangoProjectNew/manage.py", line 11, in <module> 
    execute_from_command_line(sys.argv) 
File "/var/lib/openshift/55555511111114444444444/python/virtenv/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
File "/var/lib/openshift/55555511111114444444444/python/virtenv/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/__init__.py", line 312, in execute 
    django.setup() 
File "/var/lib/openshift/55555511111114444444444/python/virtenv/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
File "/var/lib/openshift/55555511111114444444444/python/virtenv/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/apps/registry.py", line 85, in populate 
    app_config = AppConfig.create(entry) 
File "/var/lib/openshift/55555511111114444444444/python/virtenv/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/apps/config.py", line 119, in create 
    import_module(entry) 
File "/opt/rh/python27/root/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named django 

Это приложение представляет собой копию приложения, которое я создал несколько месяцев назад. Я изменил все соответствующие пути, имена и т. Д. Он работает нормально локально.

Не странно ли, что последняя команда __init__.py работает за пределами virtualenv?

Я использую картридж python2.7 и пример github openshift https://github.com/openshift/django-example Это приложение использует django 1.8.0 в качестве зависимости.

Это приложения установлены с djangoProject.settings

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'myDjangoApp', 
    'djcelery', 
    'kombu.transport.django', 
    'progressbarupload', 
    'widget_tweaks', 
) 

Джанго установлен:

[djangoProject-USERNAME.rhcloud.com data]\> which python 
/var/lib/openshift/55555511111114444444444/python/virtenv/bin/python 
[djangoProject-USERNAME.rhcloud.com data]\> python 
Python 2.7.8 (default, Aug 4 2016, 09:29:33) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-9)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.VERSION 
(1, 8, 0, 'final', 0) 
>>> 

После дальнейшего играть вокруг, я могу сказать, что это связано с одной или всех этих INSTALLED_APPS:

'djcelery', 
    'kombu.transport.django', 
    'progressbarupload', 

Это пип замораживания:

amqp==2.1.1 
Babel==0.9.6 
billiard==3.5.0.1 
celery==4.0.0rc6 
Django==1.8 
django-celery==3.1.17 
django-smartfields==1.0.9 
django-widget-tweaks==1.4.1 
docutils==0.11 
Extractor==0.6 
Jinja2==2.6 
kombu==4.0.0rc6 
MarkupSafe==0.11 
MySQL-python==1.2.3 
nose==1.3.0 
numpy==1.7.1 
prelive==1.0 
psycopg2==2.5.1 
Pygments==1.5 
pytz==2016.7 
scipy==0.12.1 
simplejson==3.2.0 
six==1.7.3 
Sphinx==1.1.3 
SQLAlchemy==0.7.9 
vine==1.1.3 
virtualenv==13.1.0 
Werkzeug==0.8.3 
wheel==0.24.0 
+1

Похоже, что django установлен локально, но не на смену ... –

+0

Извините, что забыл упомянуть об этом. Django установлен. Я обновил вопрос. – user3620060

+0

OpenShift 2 требует явно активировать виртуальную среду в файле сценария WSGI или файле app.py. Вы это делаете? –

ответ

0

Я добавил это в свой setup.py, и теперь он работает.

install_requires=[ 
    'Django==1.8', 
    'django-celery==3.1.16', 
    'kombu==3.0.26', 
    'django-widget-tweaks==1.4.1', 
    'celery==3.1.18', 
    'django-crispy-forms==1.4.0', 
    ], 
1

Причина в том, что «kombu.transport.django» больше не доступен в kombu 4.0.0.

Так что «ImportError: No module django» жалуется на модуль в пакете kombu, а не на пакет Django.

Использование kombu 3.0. ** должно быть исправлено.