在Shinyapps.io上使用网状网络使用python 3

时间:2019-02-12 13:56:59

标签: python r shiny reticulate

我在Python 3中有一些代码,我通过reticulate库在R中运行,可以在shiny应用中使用。它在我的本地计算机上运行良好,但是当我在shinyapps.io中发布时,网状结构默认情况下使用的是Python 2。

到目前为止,我尝试使用use_python函数,但是我不确定该路径:

use_python("/usr/bin/python3", require = TRUE)

日志给我错误:

2019-02-12T13:44:54.691167+00:00 shinyapps[710102]: Warning: Error in initialize_python: Python shared library '/usr/lib/libpython3.5.so' not found, Python bindings not loaded.
2019-02-12T13:44:54.697101+00:00 shinyapps[710102]:   64: stop
2019-02-12T13:44:54.697103+00:00 shinyapps[710102]:   63: initialize_python
2019-02-12T13:44:54.697104+00:00 shinyapps[710102]:   62: ensure_python_initialized
2019-02-12T13:44:54.697105+00:00 shinyapps[710102]:   61: py_run_file
2019-02-12T13:44:54.697106+00:00 shinyapps[710102]:   60: source_python
2019-02-12T13:44:54.697107+00:00 shinyapps[710102]:   59: server [/srv/connect/apps/str_telefonica/app.R#57]
2019-02-12T13:44:54.697385+00:00 shinyapps[710102]: Error in initialize_python(required_module, use_environment) : 
2019-02-12T13:44:54.697387+00:00 shinyapps[710102]:   Python shared library '/usr/lib/libpython3.5.so' not found, Python bindings not loaded.

1 个答案:

答案 0 :(得分:2)

要使用reticulate和Python 3将应用程序部署到Shinyapps.io,您的代码应创建一个Python 3虚拟环境并将任何必需的软件包安装到其中:

reticulate::virtualenv_create(envname = 'python3_env', 
                              python = '/usr/bin/python3')

reticulate::virtualenv_install('python3_env', 
                               packages = c('numpy'))  # <- Add other packages here, if needed

然后,不使用use_python()函数,只需将reticulate指向您创建的Python 3虚拟环境:

reticulate::use_virtualenv('python3_env', required = T)

有关使用reticulate和Python 3来将Shiny应用程序部署到Shinyapps.io的更完整的教程,请查看this step-by-step example

注意:直到几个月前,reticulate从Python 3调用virtualenv仍默认创建了Python 2虚拟环境。但是,截至2019年10月8日,开发版本为reticulate中的this was fixed

您可以使用R软件包reticulate安装该特定版本的remotes,并进行修复:

remotes::install_github("rstudio/reticulate", force = T, ref = '0a516f571721c1219929b3d3f58139fb9206a3bd')

或使用任何reticulate> = v1.13.0-9001,您将能够在Shinyapps.io上创建Python 3虚拟环境。