Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的Flask应用程序在Heroku上被检测为node.js_Python_Node.js_Heroku_Flask - Fatal编程技术网

Python 为什么我的Flask应用程序在Heroku上被检测为node.js

Python 为什么我的Flask应用程序在Heroku上被检测为node.js,python,node.js,heroku,flask,Python,Node.js,Heroku,Flask,我最近对heroku上托管的Flask应用程序的结构做了一些更改,现在heroku决定将其检测为Python应用程序的Node.js应用程序。我的应用程序使用python(Flask)作为后端api,使用javascript作为前端 我所做的更改包括将npm和bower集成到我的应用程序中,以简化应用程序的javascript开发 当我开始使用npm时,在我的根目录中添加了一个package.json时,问题就出现了。构建检测脚本似乎首先运行nodejs检测(),这导致了以下代码:if[-f$1

我最近对heroku上托管的Flask应用程序的结构做了一些更改,现在heroku决定将其检测为Python应用程序的Node.js应用程序。我的应用程序使用python(Flask)作为后端api,使用javascript作为前端


我所做的更改包括将npm和bower集成到我的应用程序中,以简化应用程序的javascript开发

当我开始使用npm时,在我的根目录中添加了一个
package.json
时,问题就出现了。构建检测脚本似乎首先运行nodejs检测(),这导致了以下代码:
if[-f$1/package.json];然后
echo“Node.js”和&exit 0
正在执行,Heroku认为这是一个nodejs应用程序,并在python检测有机会运行之前退出

为了解决这个问题,我必须手动告诉Heroku我想要使用这个命令进行python构建


heroku配置:设置BUILDPACK\u URL=https://github.com/heroku/heroku-buildpack-python

文件
package.json
导致Heroku将其检测为node.js应用程序。要防止出现这种情况,请将文件名添加到文件中:



.slugignore
类似于
.gitignore
。它位于存储库的根目录中,应该包含文件名和通配符模式的列表。匹配的文件保留在git存储库中,但在推送到Heroku后会从slug中删除。删除发生在buildpack运行之前,因此node.js buildpack将找不到
package.json
,应用程序也不会被错误识别为node.js应用程序。

我在谷歌上搜索答案,并在StackOverflow上找到了一篇模糊不清的类似帖子,这让我找到了答案。我只是发布了这篇文章,为那些和我有同样问题的人提供了一个更快的解决方案。旁注:我在运行
heroku config:set
命令(在OS X上)时遇到了一个问题,因为我有一个过时的heroku工具带,通过在toolbelt.heroku.com上更新它可以很容易地解决这个问题;请注意,我必须推动另一个提交来触发更改。heroku重新启动并没有考虑到这个解决方案要优雅得多。
echo 'package.json' >> .slugignore
git add .slugignore