使用 Windows 机器将 Django 部署到 Heroku(生产服务器而不是开发服务器)

Posted

技术标签:

【中文标题】使用 Windows 机器将 Django 部署到 Heroku(生产服务器而不是开发服务器)【英文标题】:Deploying Django to Heroku using a Windows machine (Production server NOT development server) 【发布时间】:2012-04-09 05:49:06 【问题描述】:

我使用的是 Windows 机器,并且有一个已成功部署到 Heroku 的 Django 项目,尽管使用的是开发服务器。要使用生产服务器 Heroku 似乎需要不在 Windows 上运行的“Gunicorn”。

这不利于在部署之前进行本地测试。有谁知道解决这个问题的任何方法?也许有办法在 Heroku 上使用不同的服务器?

【问题讨论】:

【参考方案1】:

您需要做的就是从根目录指定 wsgi 脚本的路径:

$web: gunicorn hellodjango.wsgi

【讨论】:

【参考方案2】:

我找到了一个解决方案,在使用 Windows 机器部署到 heroku 时可能会有所帮助。这是我的工作:

在本地使用开发服务器:

python manage.py runserver

在 settings.py 中安装并添加“Gunicorn”到您已安装的应用中。

在根目录中添加一个进程文件,告诉 heroku 使用 Gunicorn 服务器。这是一个名为“Procfile”的文件,代码如下:

web: python kalail/manage.py run_gunicorn --bind=0.0.0.0:$PORT

这样您使用开发服务器进行测试,而 heroku 使用 Gunicorn 服务器。确保在此之后设置提供静态文件(css/js/imgs),因为只有开发服务器会自动提供静态文件,并且需要配置 Gunicorn 服务器来执行此操作。

【讨论】:

【参考方案3】:

您可以很容易地在本地运行开发服务器:

> python manage.py runserver

【讨论】:

也许我不够清楚。我可以很容易地运行开发服务器,它在 Windows 上本地使用生产服务器,所以我可以在推送到 Heroku 之前进行测试。这是一个问题,因为 Gunicorn 不能在 Windows 上运行。

以上是关于使用 Windows 机器将 Django 部署到 Heroku(生产服务器而不是开发服务器)的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError:没有名为“应用程序”的模块 [将 Django 部署到 AWS]

如何在 Windows 机器上用 django 测试 celery

如何将 elixir 应用程序从 Windows 开发机器部署到 Ubuntu 服务器

在 Linux 机器上将 Qt 部署到 Windows

Windows10使用IIS部署Django项目

覆盖部署到 Google App Engine 的 Django 应用中的模板