Django 在Heroku上的python应用程序中安装gem捆绑包
我在Heroku上有一个Python应用程序,运行的是Django。该应用程序启动并运行完美。推送的前几行如下所示:Django 在Heroku上的python应用程序中安装gem捆绑包,django,heroku,Django,Heroku,我在Heroku上有一个Python应用程序,运行的是Django。该应用程序启动并运行完美。推送的前几行如下所示: (venv)➜ djangoproject git:(development) ✗ git push Counting objects: 33, done. Delta compression using up to 4 threads. Compressing objects: 100% (21/21), done. Writing objects: 100% (21/21)
(venv)➜ djangoproject git:(development) ✗ git push
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (21/21), done.
Writing objects: 100% (21/21), 1.96 KiB, done.
Total 21 (delta 15), reused 0 (delta 0)
-----> Heroku receiving push
-----> Python/Django app detected
...
我需要在dyno(特别是指南针)上安装一个gem程序
Heroku的指示是在根目录中提供一个Gemfile
和Gemfile.lock
,并使用所需的gems。但是,我一提供这个,Heroku就认为这个应用程序是Ruby应用程序:
(venv)➜ djangoproject git:(development) ✗ git push
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (21/21), done.
Writing objects: 100% (21/21), 1.96 KiB, done.
Total 21 (delta 15), reused 0 (delta 0)
-----> Heroku receiving push
-----> Ruby app detected (NOTE: this is paraphrased)
...
在以Python/Django应用程序的形式运行站点时,有什么方法可以安装ruby gem吗?尝试使用heroku config:add buildpack\u URL显式选择Python构建包=https://github.com/heroku/heroku-buildpack-python.git 它仍将执行检测过程,但我认为(?)它将运行您之前显式选择的构建包,或者不尝试任何其他构建包,并且由于您仍然安装了python应用程序,它应该可以工作 请注意,在完成config:add之后,您需要在Heroku上重建slug,这目前只能通过git推动实际的代码更改来完成。如果没有任何真正的更改要推送,可以使用
git-commit--allow empty-m“empty-commit”
您还可以使用--buildpack命令行选项创建一个新项目。我遇到了同样的问题,这对我很有效: 工作原理:
还值得一提的是,pythonbuildpack有两个钩子,您可以使用这些钩子进行额外的定制工作。如果您创建了一个bin/pre_编译文件或bin/post_编译文件,那么python构建包将在主编译步骤之前/之后调用这些脚本。因此,您也可以使用这些挂钩来安装Ruby或其他依赖项。但是在我看来,让Ruby自己的buildpack安装Ruby依赖项更容易。您需要使用定制的buildpack,它允许您同时构建Ruby和python依赖项
rakeassets:precompiletask
中指定这些内容
因此,在我使用指南针的情况下,耙形锉看起来像:
require 'yaml'
require 'pathname'
require 'rspec/core/rake_task'
include FileUtils
namespace 'assets' do
desc 'Updates the stylesheets generated by Sass/Compass'
task :precompile do
print %x(compass compile --time)
end
end
回答得真好!设置自定义构建包似乎可以让我在根目录中维护
Gemfile
的同时使用Python/Django dyno。不幸的是,默认的heroku buildpack似乎不查找并自动安装Gemfiles。我将尝试使用默认的buildpack并让它运行builder
听起来是个不错的计划。您也可以利用Ruby buildpack的代码来完成这项任务?