无法使用Python在Heroku教程中启动工头

时间:2013-03-14 01:32:28

标签: python ruby heroku foreman git-bash

我一直在尝试完成this tutorial,但遇到了foreman start行的问题。我正在使用Windows 7,64位机器,我正在尝试在Heroku Toolbelt提供的git bash终端中执行此操作。

当我输入foreman start时,我收到了:

sh.exe": /c/Program Files (x86)/Heroku/ruby-1.9.2/bin/foreman: "c:/Program: bad
interpreter: No such file or directory

所以我尝试在git bash中输入cmd,方法是键入cmd,然后使用foreman start(类似于a comment on one of the answers to this question建议)。这就是产生的结果:

Bad file descriptor
c:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.62.0
/lib/foreman/engine.rb:377:in `read_nonblock'
c:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.62.0
/lib/foreman/engine.rb:377:in `block (2 levels) in watch_for_output'
c:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.62.0
/lib/foreman/engine.rb:373:in `loop'
c:/Program Files (x86)/Heroku/ruby-1.9.2/lib/ruby/gems/1.9.1/gems/foreman-0.62.0
/lib/foreman/engine.rb:373:in `block in watch_for_output'
21:06:08 web.1  | exited with code 1
21:06:08 system | sending SIGKILL to all processes

我不知道第二组错误试图告诉我什么,因为它似乎声称engine.rb正在运行的文件位置甚至不存在于我的计算机上。

我已经查看了类似问题的其他答案,但是我没有收到类似的错误,所以不相信我的问题的解决方案目前存在。

4 个答案:

答案 0 :(得分:70)

我有这个问题。我通过卸载工头宝石0.62版并安装0.61来修复它。

gem uninstall foreman
gem install foreman -v 0.61

答案 1 :(得分:11)

是的,heroku-toolbelt-installer目前无法正常工作(2013年8月30日)。 对于Windows,以下步骤对我有用:

  1. 卸载heroku(通过Windows'程序卸载')
  2. 将heroku https://toolbelt.heroku.com/windows安装到C:\ bin \ heroku中,即“没有空格'
  3. http://rubyinstaller.org/downloads/
  4. 安装ruby
  5. 在cmd run" gem install foreman -v 0.61"。是的,"宝石安装工头"已安装v0.63,这对" foreman start"
  6. 无效
  7. 在cmd"工头开始"适用于heroku hello-world示例

答案 2 :(得分:6)

卸载heroku工具带并将其重新安装到一个没有空格的路径中,例如C:\heorku\会有所帮助。除此之外,heroku windows安装程序目前可怕地被破坏,这对我们来说并不是一个值得骄傲的地方。要解决foreman的问题,您可以使用export VAR=VALUE将环境变量设置为自己,然后使用您在proc文件中放置的命令运行应用程序。

将来会有所改善。

答案 3 :(得分:0)

要添加的一件事是,如果您将Heroku安装到包含空格的目录中,那么当您尝试执行gem install foreman -v 0.61时(在Windows上)也会导致错误。

一旦我将Heroku重新安装到C:\ Heroku而不是C:\ Program Files \ Heroku,那么我就可以使用上面的Eric Speelman解决方案来完成这项工作。