如何将 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_APPSDJANGO_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 吗?

将密码字段迁移到 Django

如何将自定义用户模型迁移到 Django 中的不同应用程序?

如何将模型从一个 django 应用程序迁移到一个新应用程序中?