如何将 Django 项目迁移到 Pythonanywhere
Posted
技术标签:
【中文标题】如何将 Django 项目迁移到 Pythonanywhere【英文标题】:How to migrate Django project to Pythonanywhere 【发布时间】:2014-05-07 05:18:21 【问题描述】:我正在尝试在 Pythonanywhere 上设置一个 Django 应用程序——我已经设法找出 Bitbucket 并将代码克隆到其中——我删除了为我提供的目录中的文件——但无法让它工作.
我已经完成了“syncdb”,然后当我转到我认为是应用程序正确的 URL 时,我不断收到“未处理的异常”——错误是它无法在其中找到“portfolio.settings”一个导入(portfolio 是应用程序的名称)
我也不知道 MEDIA_ROOT 和 STATIC_DIRS 应该放什么——据我所知,它们应该是完整路径,而不是相对路径。
我是 Django 新手,要部署在本地运行良好的应用程序,这是相当困难的。提供的任何帮助(我还没有找到 Pythonanywhere 论坛 - 似乎没有被索引 - 或者提供所有有用的帮助,恐怕)
我也想过:为什么不让 Pythonanywhere 为我建立一个空白项目,但是我又不知道如何处理 STATIC_DIRS 和 MEDIA_ROOT,我真的不知道如何让我的项目适合他们的设置。
感谢您的帮助。
【问题讨论】:
您的 settings.py 中的 INSTALLED_APPS 中是否有“作品集”? PythonAnywhere dev here -- 如果您让我知道您的用户名,并且您很高兴我查看您的文件,我可能会为您解决这个问题。如果您不想在此处发布详细信息,则可以使用网站上的“发送反馈”链接。 @AllTheTime - 谢谢,是的,我有:# 应用程序定义 INSTALLED_APPS = ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django .contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'portfolio', 'south', ) @GilesThomas -- 非常感谢,我已通过网站上的“发送反馈”链接向您发送了我的用户名。 感谢 SOF Giles 的帮助! 【参考方案1】:对于遇到类似问题的任何其他人:Web 应用程序中的导入错误通常与您的 sys.path
配置不正确有关。检查您的 WSGI 文件(在 PythonAnywhere 上,您可以在 Web 选项卡上找到它。其他主机可能会做不同的事情)。
例子:
/home/myusername/myproject/
是项目文件夹
/home/myusername/myproject/my_cool_app/
是您的应用文件夹之一
/home/myusername/myproject/myproject/settings.py
是设置文件位置
你的 WSGI 文件应该有:
sys.path.append('/home/myusername/myproject')
# ...
DJANGO_SETTINGS_MODULE = 'myproject.settings'
你的 settings.py 应该有
INSTALLED_APPS = (
#...
'my_cool_app'
所有内容都必须对齐,以便INSTALLED_APPS
和DJANGO_SETTINGS_MODULE
环境变量中的应用程序的点表示法名称将正确导入,相对于您添加到 sys.path 的文件夹。
所以在上面的例子中,你可以想象:
# wsgi file
sys.path.append('/home/myusername')
DJANGO_SETTINGS_MODULE = 'myproject.myproject.settings'
# settings.py
INSTALLED_APPS = 'myproject.my_cool_app'
但不要那样做,太复杂了。
PS 在文档中有一个detailed guide to sys.path and import issues for pythonanywhere。
【讨论】:
假设要做sys.path.append('/home/myusername/myproject')
我需要先到import sys
以上是关于如何将 Django 项目迁移到 Pythonanywhere的主要内容,如果未能解决你的问题,请参考以下文章
Django:将项目从 sqlite 迁移到 PostgreSQL 的最佳实践是啥
在 Django 1.7 迁移之前运行 South 迁移的推荐方法是啥?
应该将 Django 项目中的迁移目录推送到 git repo 吗?