Heroku:在同一实例上运行Rails应用和Python脚本

3 投票
2 回答
1233 浏览
提问于 2025-04-18 15:44

我在我的Rails应用的/app/bin目录里有一个Python脚本,这个脚本里有一个requirements.txt文件,里面列出了它需要的所有依赖。

我想让这个脚本在和我的Rails应用同一个Heroku实例上运行(我的Rails应用偶尔会调用这个Python脚本)。

到目前为止,我尝试过以下方法:

  1. requirements.txt文件放在根目录/里。结果没有安装任何Python依赖。
  2. 尝试运行heroku run bash,然后执行pip install -r requirements.txt。结果收到提示pip command not found
  3. 尝试通过bash界面安装pip,使用sudo python get-pip.py,这个命令是在curl下载脚本后执行的,按照pip安装网站的建议来做的。结果没成功——这也不奇怪,因为他们不支持在这个实例上使用sudo命令。

我知道Heroku应该是开箱即用支持pip的,但一旦检测到是Ruby应用,它似乎对requirements.txt文件就没什么反应。

2 个回答

-1
  1. 把 requirements.txt 文件放在项目文件夹里。在我的例子中,项目的名字是 stock09,所以 requirements.txt 文件就在 stock09 旁边。

  2. 输入 heroku login 来登录 Heroku。

  3. 输入 heroku buildpacks:set heroku/ruby 来设置 Ruby 的构建包。

  4. 输入 heroku buildpacks:set heroku/python 来设置 Python 的构建包。

  5. 输入 heroku buildpacks 来查看当前的构建包。

  6. 输入 git add . 来把所有更改的文件添加到 Git。

  7. 输入 git commit -m " " 来提交这些更改,双引号里可以写一些描述。

  8. 输入 git push heroku master 来把代码推送到 Heroku。

现在可以正常工作了。

3

你可以使用 Heroku Buildpack Multi,这样就能在同一个实例上同时运行 Python 和 Ruby 的应用程序,前提是使用它们各自的构建包。

撰写回答