Cloud Foundry 上的 Flask 应用程序 - 命令 "python setup.py egg_info" 失败,错误代码为 1
Flask app on Cloud Foundry - Command "python setup.py egg_info" failed with error code 1
我正在尝试通过 Flask 将 Python (3.6.5) 应用程序推送到 Cloud Foundry(参见版本 6.36.1+e3799ad7e.2018-04-04)。应用程序接收 POST 请求(文本文件),进行一些文本转换,保存新文件,然后 returns 确认消息。它在本地工作(通过 Postman 测试)。但是,当尝试将其推送到 CF 时,会出现以下错误 -
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ygzuah5g/logging/
你能告诉我如何解决这个问题吗?提前致谢。整个文件加在一起约为 350 MB。我正在使用 manifest.yml
---
applications:
- name: textsum
memory: 512M
command: python server.py
buildpack: https://github.com/cloudfoundry/buildpack-python.git
PS - 不确定这是否有帮助,我的一个文件中确实有 import queue
。如果我将其更改为 import Queue
(Py 2x 兼容)并使用 Py 2.7.15 运行时,cf 推送成功,但会抛出运行时错误
ERROR in app: Exception on / [POST]
File "/home/vcap/deps/0/python/lib/python2.7/subprocess.py", line 1047, in _execute_child
ERR raise child_exception
ERR OSError: [Errno 2] No such file or directory
ERR 10.0.65.11 - - [12/Jun/2018 20:56:16] "POST / HTTP/1.1" 500 -
第一。不要在 manifest.yml
:
中这样做
buildpack: https://github.com/cloudfoundry/buildpack-python.git
这告诉 Cloud Foundry 使用 buildpack 的 master 分支,它可以经常更改并且不能保证它的适用性(即它甚至可能被破坏)。
相反,请确保您使用的是发行版。发布已经过测试,代码不会从您手下更改。
您可以使用平台提供的 Python buildpack 来完成此操作,只需删除此行或将 python_buildpack
作为名称,或者您可以指向 buildpack: https://github.com/cloudfoundry/buildpack-python.git#v1.6.17
其中 v1.6.17
是从这里发布的。
https://github.com/cloudfoundry/python-buildpack/releases
Second,看来你需要告诉 Cloud Foundry 和 buildpack 你想要哪个版本的 Python。如果你需要 Python 3,那么你应该告诉它。有关执行此操作的说明,请参阅此处。
第三次,这个错误:
ERR OSError: [Errno 2] No such file or directory
您似乎正试图写入一个不存在的位置。你想在哪里写你的文件?本地计算机上的路径与 Cloud Foundry 上的 运行 不同。通常在 Cloud Foundry 上,您会将临时文件写入 /home/vcap/tmp
或 /app/tmp
(/app
是指向 /home/vcap
的符号链接)或 $HOME/tmp
。他们都指向同一个地方。
我在这里特别提到 临时 文件,因为您不想将永久文件写入 Cloud Foundry 上的本地文件系统。本地文件系统是短暂的,您的数据不会持续很长时间。详情请看这里。
https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#filesystem
希望对您有所帮助!
我正在尝试通过 Flask 将 Python (3.6.5) 应用程序推送到 Cloud Foundry(参见版本 6.36.1+e3799ad7e.2018-04-04)。应用程序接收 POST 请求(文本文件),进行一些文本转换,保存新文件,然后 returns 确认消息。它在本地工作(通过 Postman 测试)。但是,当尝试将其推送到 CF 时,会出现以下错误 -
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ygzuah5g/logging/
你能告诉我如何解决这个问题吗?提前致谢。整个文件加在一起约为 350 MB。我正在使用 manifest.yml
---
applications:
- name: textsum
memory: 512M
command: python server.py
buildpack: https://github.com/cloudfoundry/buildpack-python.git
PS - 不确定这是否有帮助,我的一个文件中确实有 import queue
。如果我将其更改为 import Queue
(Py 2x 兼容)并使用 Py 2.7.15 运行时,cf 推送成功,但会抛出运行时错误
ERROR in app: Exception on / [POST]
File "/home/vcap/deps/0/python/lib/python2.7/subprocess.py", line 1047, in _execute_child
ERR raise child_exception
ERR OSError: [Errno 2] No such file or directory
ERR 10.0.65.11 - - [12/Jun/2018 20:56:16] "POST / HTTP/1.1" 500 -
第一。不要在 manifest.yml
:
buildpack: https://github.com/cloudfoundry/buildpack-python.git
这告诉 Cloud Foundry 使用 buildpack 的 master 分支,它可以经常更改并且不能保证它的适用性(即它甚至可能被破坏)。
相反,请确保您使用的是发行版。发布已经过测试,代码不会从您手下更改。
您可以使用平台提供的 Python buildpack 来完成此操作,只需删除此行或将 python_buildpack
作为名称,或者您可以指向 buildpack: https://github.com/cloudfoundry/buildpack-python.git#v1.6.17
其中 v1.6.17
是从这里发布的。
https://github.com/cloudfoundry/python-buildpack/releases
Second,看来你需要告诉 Cloud Foundry 和 buildpack 你想要哪个版本的 Python。如果你需要 Python 3,那么你应该告诉它。有关执行此操作的说明,请参阅此处。
第三次,这个错误:
ERR OSError: [Errno 2] No such file or directory
您似乎正试图写入一个不存在的位置。你想在哪里写你的文件?本地计算机上的路径与 Cloud Foundry 上的 运行 不同。通常在 Cloud Foundry 上,您会将临时文件写入 /home/vcap/tmp
或 /app/tmp
(/app
是指向 /home/vcap
的符号链接)或 $HOME/tmp
。他们都指向同一个地方。
我在这里特别提到 临时 文件,因为您不想将永久文件写入 Cloud Foundry 上的本地文件系统。本地文件系统是短暂的,您的数据不会持续很长时间。详情请看这里。
https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#filesystem
希望对您有所帮助!