【问题标题】:`heroku` is not accessible on Heroku (not kidding)Heroku 上无法访问 `heroku`(不是开玩笑)
【发布时间】:2017-04-29 23:40:38
【问题描述】:

我在 Heroku 上托管了一个 python 项目,它正在尝试执行以下操作:

  1. 创建 git 存储库
  2. 在 heroku 上启动
  3. 将测功机尺寸更改为爱好。

我一直在与 Heroku 平台 API 集成,结果发现第 3 步无法通过他们的 API 实现。 (见Change Dyno types through the Heroku API

我尝试subprocess.call(['heroku', 'dyno:type', 'hobby']) 却发现heroku 命令在heroku 上不可用heroku run bash 证实了这一点。

因此,我考虑过直接下载 heroku 客户端,将其附加到我的 repo 并通过我的 python 网络服务器执行 heroku 客户端。

但是,我实际上不知道如何做到这一点。我的问题:

  1. 如何从我的网络服务器中导航到我的存储库路径?
  2. 有没有更好的方法来实现这一点?

编辑

对于那些仍然怀疑我是否在我的网络服务器上正确运行 heroku 的人:

@app.route("/<cloaker_id>")
def hello(cloaker_id):  
  subprocess.call(['heroku', 'apps'])

结果

2017-04-30T08:33:48.108374+00:00 app[web.1]: [2017-04-30 08:33:48,107] ERROR in app: Exception on /blah [GET]
2017-04-30T08:30:06.705906+00:00 app[web.1]: Traceback (most recent call last):
2017-04-30T08:30:06.705908+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
2017-04-30T08:30:06.705908+00:00 app[web.1]:     response = self.full_dispatch_request()
2017-04-30T08:30:06.705909+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
2017-04-30T08:30:06.705910+00:00 app[web.1]:     rv = self.handle_user_exception(e)
2017-04-30T08:30:06.705911+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
2017-04-30T08:30:06.705914+00:00 app[web.1]:     reraise(exc_type, exc_value, tb)
2017-04-30T08:30:06.705915+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
2017-04-30T08:30:06.705916+00:00 app[web.1]:     rv = self.dispatch_request()
2017-04-30T08:30:06.705916+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
2017-04-30T08:30:06.705917+00:00 app[web.1]:     return self.view_functions[rule.endpoint](**req.view_args)
2017-04-30T08:30:06.705918+00:00 app[web.1]:   File "/app/run.py", line 20, in hello
2017-04-30T08:30:06.705918+00:00 app[web.1]:     subprocess.call(['heroku', 'apps'])
2017-04-30T08:30:06.705919+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/subprocess.py", line 168, in call
2017-04-30T08:30:06.705920+00:00 app[web.1]:     return Popen(*popenargs, **kwargs).wait()
2017-04-30T08:30:06.705921+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/subprocess.py", line 390, in __init__
2017-04-30T08:30:06.705922+00:00 app[web.1]:     errread, errwrite)
2017-04-30T08:30:06.705923+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/subprocess.py", line 1024, in _execute_child
2017-04-30T08:30:06.705923+00:00 app[web.1]:     raise child_exception
2017-04-30T08:30:06.705924+00:00 app[web.1]: OSError: [Errno 2] No such file or directory

【问题讨论】:

  • heroku run bash确认了什么,是成功还是失败?你在哪里运行它和subprocess.call()
  • @NickT 子进程抱怨找不到heroku 进程。在 heroku run bash 中运行 heroku 也会抱怨找不到命令
  • 我假设您说的是在 Heroku 实例上运行;它应该有 Heroku 代理吗?自己安装?
  • 你试过更新你的heroku cli吗?

标签: python git heroku


【解决方案1】:

你在本地的 heroku 目录中吗?如果您在本地,heroku run bash 将运行,但如果您在另一个项目目录中,则会报告错误。我假设你已经安装了 Heroku Toolbelt?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-14
    • 2021-04-09
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2018-12-26
    • 2022-07-04
    • 2019-09-27
    相关资源
    最近更新 更多