- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的目录结构(我只包含了相关部分):
my_git_root/
├── Procfile
├── README.md
├── requirements.txt
└── my_django_project
├── app1
│ ├── admin.py
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── fabfile.py
├── app2
│ ├── __init__.py
│ ├── models.py
│ ├── templates
│ ├── tests.py
│ └── views.py
├── manage.py
└── my_django_project
├── __init__.py
├── settings
│ ├── base.py
│ ├── __init__.py
│ ├── local.py
│ ├── production.py
│ └── staging.py
├── static
├── urls.py
└── wsgi.py
在 official Heroku docs 之后,这是我的 Procfile
中的内容:
web: gunicorn my_django_project.wsgi
但是当我运行 foreman start
命令时,我得到一个以 ImportError: No module named my_django_project.wsgi.
结尾的长回溯。
将 Procfile
从 git_root/
移动到 my_django_project/
(Django 项目根目录)似乎可行(就像在 this post 中所做的一样) ),但仅限于本地——尝试部署到 Heroku 似乎没问题,直到您尝试扩展 Web 进程:
$ heroku ps:scale web=1
Scaling web dynos... failed
! No such process type web defined in Procfile.
看起来好像 Heroku wants you to put the Procfile in the project's git repository root ,但我在 Procfile
中尝试了很多组合,但似乎都不起作用。我也试过:
web: gunicorn my_django_project/my_django_project.wsgi
在 Procfile
中,但这会导致 ImportError: Import by filename is not supported.
指定 python 路径也不起作用;即
web: gunicorn my_django_project.wsgi:application --pythonpath=/app/my_django_project
抛出错误 ImportError: No module named my_django_project.wsgi
。
但是,使用来自 git_root/my_django_project/
的 gunicorn 在本地运行似乎可行:
$ gunicorn -b 0.0.0.0:8000 my_django_project.wsgi:application
2013-10-15 16:55:31 [5703] [INFO] Starting gunicorn 18.0
2013-10-15 16:55:31 [5703] [INFO] Listening at: http://0.0.0.0:8000 (5703)
2013-10-15 16:55:31 [5703] [INFO] Using worker: sync
2013-10-15 16:55:31 [5708] [INFO] Booting worker with pid: 5708
2013-10-15 16:56:04 [5703] [INFO] Handling signal: winch
2013-10-15 16:56:04 [5703] [INFO] SIGWINCH ignored. Not daemonized
所以我的猜测是我的 Procfile
中的语法不正确,但我不确定是怎么回事。
最佳答案
写这道题的时候想通了!
我必须做的是将 --pythonpath
选项设置为指向我的 django 项目根目录,即 git_root/my_django_project/
。
这是我在 Procfile
中的内容:
web: gunicorn -b 0.0.0.0:8000 --pythonpath=./my_django_project my_django_project.wsgi:application
现在它在本地工作了:
$ foreman start
17:04:02 web.1 | started with pid 6327
17:04:02 web.1 | 2013-10-15 17:04:02 [6330] [INFO] Starting gunicorn 18.0
17:04:02 web.1 | 2013-10-15 17:04:02 [6330] [INFO] Listening at: http://0.0.0.0:8000 (6330)
17:04:02 web.1 | 2013-10-15 17:04:02 [6330] [INFO] Using worker: sync
17:04:02 web.1 | 2013-10-15 17:04:02 [6335] [INFO] Booting worker with pid: 6335
17:04:04 web.1 | 2013-10-15 17:04:04 [6330] [INFO] Handling signal: winch
17:04:04 web.1 | 2013-10-15 17:04:04 [6330] [INFO] SIGWINCH ignored. Not daemonized
现在扩展网络进程也可以了:
$ heroku ps:scale web=1 --app my-django-project
Scaling web dynos... done, now running 1
关于django - 运行 `foreman start`/将 Django 应用程序部署到 Heroku 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391335/
我在 Heroku 上部署了一个 NodeJs 应用程序。 由于我需要在生产和开发中执行不同的 Procfile,因此我安装了 Foreman for Node ( https://www.npmjs
我正在尝试将数据库从 sqlite 迁移到 mysql。使用 foreman-mysql2 成功迁移数据库。重新启动 foreman 后,我无法使用 admin/changeme 登录。 然后我尝试使
我是在 Rails 上使用 foreman gem 的新手。我在 Rails 3.2、Ruby 1.9.3 和 Foreman 0.6 上运行一个应用程序。我想知道当我运行工头时幕后发生了什么。具体来
当我已经安装了mysql时,为什么还需要安装它的mysql包,我很抱歉,如果我听起来很愚蠢,但这是我的学习点。 最佳答案 foreman-mysql 将是“foreman”端客户端代码。我的特定服务器
我有这个简单的 Procfile web: myapp myapp 在路径中,但进程主目录应该是 ./directory/。如何在 Procfile 中指定要启动进程的位置? https://gith
我有一个自制的 Sinatra 应用程序,我打算使用 Heroku 来托管它。 我在开发中使用 foreman 和 shotgun,并使用以下 Procfile: web: shotgun confi
我正在尝试使用 Foreman (版本 0.31.0)来管理我们的应用程序的进程,但我对 nginx(nginx/1.0.10 + Phusion Passenger 3.0.11)不太走运。 这是我
你能注释掉 foreman 读取的 .env 文件中的行吗? ? 最佳答案 FWIW,“#”似乎可以作为注释字符使用。 它至少具有删除不需要的环境声明的效果。它可能会以 # 开头声明其他人,但是...
我正在尝试使用Foreman/Honcho管理我的基于 Procfile 的 Django 应用程序。当我启动应用程序查看正常的 python manage.py runserver 时,一切正常。但
我正在尝试从 this Python Heroku tutorial 运行 hello.py .运行此命令后我的问题开始了:foreman start。即使我安装了 Heroku Toolbelt,我
我使用工头导出来创建 Upstart 脚本(在 ubuntu 上)。 Foreman 生成一个这样的 Upstart 脚本: start on starting app stop on stoppin
我在这里遵循heroku快速入门指南: https://devcenter.heroku.com/articles/getting-started-with-python 我被困在工头开始部分。这就是
我正在通过 Heroku 和 Foreman 运行两个 python 进程(时钟和网络) 当我和 Foreman 在本地运行时: 1. 两个进程都登录到终端 2. 然后时钟进程停止输出(即使它还在运行
我刚刚开始使用 Ruby 和 sinatra 框架。我现在已经使用 heroku 进行了设置,我非常惊讶它的工作原理。只有一件事我想不通。我如何调试东西?听起来可能很奇怪,但我有这个变量,我想打印出来
我已经使用带有 Digital ocean 的 Ubuntu 服务器在 VPS 上成功部署了我的 Rails 应用程序。我正在使用工头启动许多进程,如果我通过 ssh 进入我的服务器,我可以使用 fo
I got one error message while running following command.I use Proxy.is this a problem with proxy?ple
看起来是一个相当简单的问题,但似乎无法弄清楚。我一直在遵循 Heroku 的 Django 说明 (https://devcenter.heroku.com/articles/django#using
一段时间以来,我一直在使用 foreman 以集中方式扩展我的各种 ruby 进程,它非常适合我。 无论如何,我希望有一些功能来重新启动一个进程,甚至给它更多的控制权,比如杀死一个进程并重新启动它
我在 application.yml 中将端口设置为 3000(figaro 管理环境变量)rails s 使用端口 3000但是当我运行 foreman start(按照 Heroku 的建议)时,
Unicorn 不是由 upstart 脚本运行的。 rvm 1.25.23 ruby 2.1.1 rails 4.1 配置/部署.rb desc 'Foreman init' task :f
我是一名优秀的程序员,十分优秀!