python - Shiny 应用程序的版本规范无效

标签 python r shiny pip shinyapps

当我尝试将我的(网状驱动的)Shiny 应用程序部署到 shinyapps.io 时,我收到以下错误:

Error in value[[3L]](cond) : invalid version specification ‘20.1b1’
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

虽然它不是明确的,但我认为错误是指 pip 版本,我从未明确指定过。

这是用户界面和服务器功能之前的代码部分:

library(reticulate)
library(shiny)

virtualenv_create(envname = "elicit", python="python3")
virtualenv_install("elicit", packages = c('numpy', 'Gpy'))
use_virtualenv("elicit", required = TRUE)

当我将其与 UI 和服务器中的任何与 Python 相关的代码一起注释掉时,一切正常。

如何设置网站请求的有效版本?我看到 reticulate::virtualenv 有一个 pip_options 参数,但我找不到有关如何使用它的有用文档。

我在设置虚拟和 conda 环境方面也不是很熟练,所以我很可能会错过一些基本步骤。

更新

我注意到,如果我切换 use_virtualenvvirtualenv_install 调用的顺序,我会收到不同的错误:

ERROR: The requested version of Python
('~/.virtualenvs/elicit/bin/python') cannot be used, as another version
of Python ('/usr/bin/python3') has already been initialized. Please
restart the R session if you need to attach reticulate to a different
version of Python.
Error in value[[3L]](cond) : 
  failed to initialize requested version of Python
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

我已经尝试了所有我能想到的方法,但还是无法解决这个问题。

最佳答案

我实际上找到了解决这个问题的方法。由于 pip 的 bug 版本在您创建 virtualenv 后立即安装,因此我强制卸载了它,然后安装了构建应用程序时有效的版本。这是我使用的代码:

virtualenv_create(envname = "python_environment", python = "python3")
virtualenv_remove(envname = "python_environment", packages = "pip")
virtualenv_install(envname = "python_environment", packages = c("pip==19.0.3","numpy","nltk","torch"), ignore_installed = TRUE)
use_virtualenv("python_environment", required = TRUE)

关于python - Shiny 应用程序的版本规范无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61361954/

相关文章:

python - "type object ' EllipticCurvePublicKey ' has no attribute ' from_encoded_point '"在 pysftp/Paramiko 中

Python:PerformanceWarning:将对象数据类型数组添加/减去未矢量化的 TimedeltaArray

javascript - R 中的 "Icon"(ISOTYPE) 图表在 Javascript 中 Shiny

r - slider 输入动态更新动画间隔

html - 希望在 R Shiny 中自定义按钮的外观

python - 在 Python 守护进程中维护日志记录和/或 stdout/stderr

python - 使用 numpy 读/写 Fortran 顺序数组的正确方法

r - 如何 `unnest` 两个不兼容的嵌套 tibble 列?

r - 在 R 中对数据表中的连续行进行分组

r - 在 ggplot2 中添加趋势线/箱线图(按组)