定义正确的 requirements.txt 文件

Defining a correct requirements.txt file

我开发了一个 Flask Web 应用程序,它可以在我的本地计算机上运行,​​但我现在正试图将其移植到 Web 上(通过 IBM Bluemix)。我第一次这样做的尝试没有成功。我收到的错误消息是:

Server error, status code: 400, error code: 170001, message: Staging error: no available stagers

当我用 cf logs myapp --recent 检查日志文件时,我发现:

2015-11-08T15:34:15.92-0500 [STG/35]     OUT -----> Downloaded app package (72K)
2015-11-08T15:34:19.98-0500 [STG/35]     OUT -----> Downloaded app buildpack cache (39M)
2015-11-08T15:34:24.82-0500 [STG/0]      OUT -------> Buildpack version 1.3.1
2015-11-08T15:34:40.57-0500 [STG/0]      OUT -----> Installing dependencies with pip
2015-11-08T15:34:41.54-0500 [STG/0]      OUT        You are using pip version 6.1.0.dev0, however version 7.1.2 is available.
2015-11-08T15:34:41.54-0500 [STG/0]      OUT        You should consider upgrading via the 'pip install --upgrade pip' command.
2015-11-08T15:34:41.56-0500 [STG/0]      OUT        Collecting flask.ext.wtf (from -r requirements.txt (line 2))
2015-11-08T15:34:41.88-0500 [STG/0]      OUT          Could not find a version that satisfies the requirement flask.ext.wtf (from -r requirements.txt (line 2)) (from versions: )
2015-11-08T15:34:41.88-0500 [STG/0]      OUT          No matching distribution found for flask.ext.wtf (from -r requirements.txt (line 2))
2015-11-08T15:34:41.96-0500 [STG/0]      OUT Staging failed: Buildpack compilation step failed
2015-11-08T15:34:41.97-0500 [STG/0]      ERR 
2015-11-08T15:34:42.67-0500 [API/2]      ERR encountered error: App staging failed in the buildpack compile phase
2015-11-08T15:35:37.75-0500 [API/3]      OUT Updated app with guid b580bb64-4415-4bb4-8fd1-1e4d3de4f7d9 ({"name"=>"cultural-insight", "memory"=>128, "environment_json"=>"PRIVATE DATA HIDDEN"})
2015-11-08T15:35:49.95-0500 [API/3]      OUT Updated app with guid b580bb64-4415-4bb4-8fd1-1e4d3de4f7d9 ({"state"=>"STOPPED"})
2015-11-08T15:35:52.41-0500 [DEA/113]    OUT Got staging request for app with id b580bb64-4415-4bb4-8fd1-1e4d3de4f7d9
2015-11-08T15:35:52.47-0500 [API/0]      ERR exception handling first response Staging error: failed to stage application:
2015-11-08T15:35:52.47-0500 [API/0]      ERR Not enough memory resources available
2015-11-08T15:50:52.42-0500 [API/0]      ERR encountered error: Staging error: failed to stage application: staging had already been marked as failed, this could mean that staging took too long

问题似乎是 pip 找不到 Flask-WTF,我的应用程序需要它才能工作。

我用 pip install Flask-WTF 在本地机器上安装了 Flask-WTF。构建器在设置时摄取的 requirements.txt 的内容很简单:

Flask==0.10.1 Flask-WTF

特别是,我不确定为什么 pip 要求 flask.ext.wtf?此外,当我将它提高到 512 MB 时,应用程序说它限制为 128 MB,这让我很困扰。

总而言之,我不确定发生了什么。我该如何解决这个问题?完整的源代码是 here.

运行 这个(已编辑):

pip install --upgrade pip

并更新您的 requirements.txt 文件:

pip freeze > requirements.txt