尝试在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帮助消息,但我的东西似乎被正确命名。从控制台导入可以正常工作,但在尝试运行应用程序时仍然会出现此错误。
非常赞赏。
答案 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对问题的评论。 我发现它对我有用。希望这种方式也适用于其他人。