You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Shiny应用调用Python脚本时无法找到依赖库的问题求助

解决Shiny调用Python脚本找不到Azure库的问题

核心原因

Shiny Server运行时使用的Python环境和你终端登录用户的Python环境不一致,导致终端安装的库无法被Shiny调用的Python识别。

解决方法

1. 指定终端使用的Python解释器路径

先在终端执行which python3,得到你平时运行脚本的Python绝对路径(比如/home/linuxadmin/.local/bin/python3),然后修改Shiny代码中的system命令,用这个绝对路径代替python3:

server <- function(input, output, session) {
  observeEvent(input$submitid,{
    source <- input$caption
    destination <- input$caption2
    # 替换成你终端的Python绝对路径
    system(paste0('/home/linuxadmin/.local/bin/python3 /home/linuxadmin/Desktop/ADLS_test2.py ', source, ' ', destination))
    output$info <- paste0('Source : ', source, ' | Destination : ', destination)
  })
}

注意:原代码中renderText是用于UI输出的逻辑,这里直接取input$caption即可,不需要用renderText包装变量。

2. 在Python脚本中手动添加库路径

先在终端执行pip show azure-identity,找到输出中的Location字段(比如/home/linuxadmin/.local/lib/python3.8/site-packages),然后在Python脚本的最开头添加以下代码:

import sys
# 替换成你从pip show得到的Location路径
sys.path.append("/home/linuxadmin/.local/lib/python3.8/site-packages")

# 之后再导入azure库
from azure.identity import DefaultAzureCredential

3. 给Shiny Server运行用户安装依赖

Shiny Server默认以shiny用户运行,切换到该用户并安装所需库:

sudo -u shiny pip install azure-identity azure-storage-blob azure-keyvault-secrets

内容的提问来源于stack exchange,提问作者msr_003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:25:00