Python Anywhere Django App导入错误

时间:2017-03-14 09:14:49

标签: python django pythonanywhere

尝试在Python Anywhere上运行django应用程序时出现以下导入错误:

Error running WSGI application
ImportError: No module named 'chamberlin.settings'
  File "/var/www/mikechamberlin_pythonanywhere_com_wsgi.py", line 58, in <module>
    application = get_wsgi_application()

我检查了我的WSGI配置文件和目录结构,两者似乎都是正确的。

WSGI文件:

import os
import sys

path = '/home/mikechamberlin/chamberlin'
if path not in sys.path:
    sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'chamberlin.settings'

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

树:

mikechamberlin
├── ...
├── chamberlin
    ├── __init__.py
    ├── chamberlin
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── private_settings.py
    │   ├── settings.py
    │   ├── static
    ...

有人能看到我没看到的东西吗?我已经在这里搜索并阅读PythonAnywhere上的ImportError帮助消息,但我的东西似乎被正确命名。从控制台导入可以正常工作,但在尝试运行应用程序时仍然会出现此错误。

非常赞赏。

1 个答案:

答案 0 :(得分:0)

以前在pythonanywhere上进行部署时,我也遇到过同样的困难,但是,我尝试了所有可能的组合来暴露我的settings.py的位置。

import os 
import sys

path = '/home/garapkan/Garap/garap_v2/'
print(path)

if path not in sys.path:
sys.path.insert(0, path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler

application = StaticFilesHandler(get_wsgi_application())

,并确保该路径位于sys.path的第一个命令中,而不是将其添加到第一行。阅读@glenn对问题的评论。 我发现它对我有用。希望这种方式也适用于其他人。