使用 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