简体   繁体   中英

How to run OpenShift Django project locally?

I'm trying to run my django 1.6 project locally (downloaded from openshift) with command: $python3.3 manage.py runserver

and get error:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0xb691592c>
Traceback (most recent call last):
  File "/usr/local/lib/python3.3/dist-packages/Django-1.6-py3.3.egg/django/utils/module_loading.py", line 21, in import_by_path
    module = import_module(module_path)
  File "/usr/lib/python3.3/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1529, in _find_and_load_unlocked
ImportError: No module named 'wsgi'

During handling of the above exception, another exception occurred:

............................................................
..........................................................
...................................................
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1529, in _find_and_load_unlocked
django.core.exceptions.ImproperlyConfigured: WSGI application 'wsgi.application' could not be loaded; Error importing module wsgi: "No module named 'wsgi'"

But on openshift.com it works. How can I run it locally for fast debugging?

Little late to the question but I had the same issue and came up with an alternative solution.

I added

sys.path.append(os.path.join(os.path.dirname(__file__), '..', ".."))

inside openshift/manage.py

and

an else in mysite/wsgi.py

else:
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()

With an application set up with a hierarchy similar to the standard example , I had to make the following changes:

In manage.py:

# Add the root to the path to support local testing with
# runserver / WSGI_APPLICATION
sys.path.append(os.path.join(os.path.dirname(__file__), '..','..'))

In settings.py:

WSGI_APPLICATION = 'wsgi.application.application'

The WSGI_APPLICATION variable is only used by runserver, I believe, so doesn't affect the deployed application.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM