/app/.heroku/python/bin/python: /app/.heroku/python/bin/python: 无法执行二进制文件

/app/.heroku/python/bin/python: /app/.heroku/python/bin/python: cannot execute binary file

当我尝试时 运行

heroku run bash python manage.py migrate --app appName

从我的终端使用 Heroku CLI,我得到以下 error/response;

/app/.heroku/python/bin/python: /app/.heroku/python/bin/python: cannot execute binary file

-- 更新截图 --

即使我在不​​添加 bash 的情况下尝试 heroku run python manage.py migrate --app appName,我仍然会遇到错误。

我终于能够通过首先进入 heroku 上的 bash,然后 运行 我希望的命令来解决这个问题。下面列出了步骤;

  1. 我打开我的终端并使用 heroku-cli,我 运行 heroku run bash --app appName
  2. 如果执行成功,您应该看到 bash shell 已加载,看起来像 ~ $
  3. 现在继续手动输入您的命令,在本例中 python manage.py migrate 应该可以。
  4. 只是一个提示——如果这仍然不起作用(或者您只是想看看您的文件目录),您可以继续列出不同的目录以查看您的 manage.py 文件在哪里在进入那个正确的目录并再次 运行 你的命令之前。使用 ls -l $(ls)find . -maxdepth 3 -type d -ls 或简单地 ls -l

这个命令没有意义:

heroku run bash python manage.py migrate --app appName

让我们分解一下:

  • heroku run ... --app appName 告诉 Heroku 运行 应用 ... 中的内容 appName
  • python manage.py migrate 是您要在测功机上 运行 的命令:
    • python是可执行文件
    • manage.py是文件Python执行
    • migrate 是传递给 manage.py
    • 的参数
  • bash...在这里没有做任何有用的事情

实际上,您是在告诉 Heroku 运行 bash python manage.py migrate,您 运行 bash 并将其作为参数传递给 python manage.py migrate。由于 python 不是 shell 脚本,因此 bash 无法执行它。

bash:

heroku run python manage.py migrate --app appName