我正在尝试通过 Flask 将 Python (3.6.5) 应用程序推送到 Cloud Foundry(参见版本 6.36.1+e3799ad7e.2018-04-04)。应用程序接受一个 POST 请求(文本文件),进行一些文本转换,保存新文件,并返回一条确认消息。它在本地工作(通过 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
:
这告诉 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
其次,您似乎需要告诉 Cloud Foundry 和 buildpack 您想要哪个版本的 Python。如果您需要 Python 3,那么您应该告诉它。有关执行此操作的说明,请参见此处。
https://stackoverflow.com/a/50837696/1585136
三、这个错误:
ERR OSError: [Errno 2] 没有那个文件或目录
似乎您正在尝试写入一个不存在的位置。你想在哪里写你的文件?本地机器上的路径与在 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
希望有帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句