如何在本地运行OpenShift Django项目?

时间:2014-04-04 23:45:29

标签: python django openshift

我正在尝试使用命令在本地运行我的django 1.6项目(从openshift下载): $ python3.3 manage.py runserver

并收到错误:

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'"

但是在openshift.com上它可行。如何在本地运行它以进行快速调试?

2 个答案:

答案 0 :(得分:5)

这个问题迟到了,但我遇到了同样的问题,并提出了另一种解决方案。

我添加了

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

在openshift / manage.py中

mysite / wsgi.py中的其他

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

答案 1 :(得分:0)

如果应用程序设置的层次结构类似于standard example,则必须进行以下更改:

在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__), '..','..'))

在settings.py中:

WSGI_APPLICATION = 'wsgi.application.application'

我相信WSGI_APPLICATION变量仅供runserver使用,因此不会影响已部署的应用程序。