Python 在 cloudfoundry 上使用 --enable-shared
Python with --enable-shared on cloudfoundry
我想在 cloudfoundry 实例上部署一个应用程序,该应用程序由一个 Rmarkdown 文件组成,该文件应同时包含 R 和 python 块。我想在 cloudfoundry 上渲染文档,而不是在本地渲染并只推送 HTML 文件。
要使 knitr
与 python 一起使用,它使用 reticulate
包,该包在 docs:
中说明
Note that for reticulate to bind to a version of Python it must be compiled with shared library support (i.e. with the --enable-shared flag).
我尝试使用 cloudfoundry python buildpack 为网状结构提供 python,但出现错误 Python shared library not found, Python bindings not loaded
,cloudfoundry 应用程序上的 reticulate::py_discover_config()
给出:
> reticulate::py_discover_config()
python: /home/vcap/deps/2/bin/python/ # or something very like this
libpython: [NOT FOUND]
我认为这表明 python 没有 是用 --enable-shared
.
编译的
诱人的是,更新日志中有 6 年前的 this line * Add --enable-shared to Python runtime options
,但它看起来是针对不再相关的特定版本。
有什么方法可以让我在 cloudfoundry 上获得一个可以与 reticulate 一起使用的 python 版本?理想情况下无需自己从头开始构建它...
我发现我可以使用 reticulate 本身安装 reticulate 乐于使用的 python 版本。在渲染 Rmarkdown 文档之前,我可以使用:
reticulate::install_miniconda()
reticulate::py_install(readLines("requirements.txt"))
这会创建一个符合我所有要求的 conda 环境,并允许我的代码 运行。
缺点是它将 python 安装从应用暂存(在 cloudfoundry 上默认需要 15 分钟完成)转移到应用启动命令(默认需要 60 秒)。我不得不将默认超时增加到 120 秒,以便有足够的时间来安装需求和呈现文档。
根据@DanielMikusa 的评论,我还在 python buildpack 上提出了一个 feature request,希望将来能够启用共享库支持,但这对我现在有效。
我想在 cloudfoundry 实例上部署一个应用程序,该应用程序由一个 Rmarkdown 文件组成,该文件应同时包含 R 和 python 块。我想在 cloudfoundry 上渲染文档,而不是在本地渲染并只推送 HTML 文件。
要使 knitr
与 python 一起使用,它使用 reticulate
包,该包在 docs:
Note that for reticulate to bind to a version of Python it must be compiled with shared library support (i.e. with the --enable-shared flag).
我尝试使用 cloudfoundry python buildpack 为网状结构提供 python,但出现错误 Python shared library not found, Python bindings not loaded
,cloudfoundry 应用程序上的 reticulate::py_discover_config()
给出:
> reticulate::py_discover_config()
python: /home/vcap/deps/2/bin/python/ # or something very like this
libpython: [NOT FOUND]
我认为这表明 python 没有 是用 --enable-shared
.
诱人的是,更新日志中有 6 年前的 this line * Add --enable-shared to Python runtime options
,但它看起来是针对不再相关的特定版本。
有什么方法可以让我在 cloudfoundry 上获得一个可以与 reticulate 一起使用的 python 版本?理想情况下无需自己从头开始构建它...
我发现我可以使用 reticulate 本身安装 reticulate 乐于使用的 python 版本。在渲染 Rmarkdown 文档之前,我可以使用:
reticulate::install_miniconda()
reticulate::py_install(readLines("requirements.txt"))
这会创建一个符合我所有要求的 conda 环境,并允许我的代码 运行。
缺点是它将 python 安装从应用暂存(在 cloudfoundry 上默认需要 15 分钟完成)转移到应用启动命令(默认需要 60 秒)。我不得不将默认超时增加到 120 秒,以便有足够的时间来安装需求和呈现文档。
根据@DanielMikusa 的评论,我还在 python buildpack 上提出了一个 feature request,希望将来能够启用共享库支持,但这对我现在有效。