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

在R/Shiny中调用Python脚本无法导入pandas的问题求助

解决Shiny调用Python脚本无法导入pandas的问题

这绝对是Shiny调用的Python环境和你终端使用的不是同一个导致的——毕竟Anaconda会帮你管理多个虚拟环境,环境路径不一致是这类问题的头号元凶。下面给你几个靠谱的解决方案:

1. 直接使用终端Python的完整路径调用

首先在终端里确认你能正常运行脚本的Python路径:

which python
# 或者如果用的是python3的话
which python3

你会得到类似/Users/你的用户名/opt/anaconda3/bin/python这样的路径。接下来把Shiny里的system()命令替换成这个完整路径:

system("/Users/你的用户名/opt/anaconda3/bin/python /Users/Downloads/Untitled3.py EMEA regulatory '10% productivity saves SOW'")

这样就强制Shiny使用你终端里那个已经装了pandas的Python环境了。

2. 给Python脚本添加Shebang行

在你的Untitled3.py最开头加上一行指定Python解释器的路径(就是刚才终端拿到的路径):

#!/Users/你的用户名/opt/anaconda3/bin/python
import pandas as pd
import numpy as np
import sys
from difflib import SequenceMatcher
# 后续代码...

然后给脚本添加执行权限(在终端里运行):

chmod +x /Users/Downloads/Untitled3.py

之后Shiny里就可以直接调用脚本文件了:

system("/Users/Downloads/Untitled3.py EMEA regulatory '10% productivity saves SOW'")

3. 用reticulate包管理Shiny中的Python环境

如果你经常在Shiny里调用Python,推荐用reticulate包来统一管理环境,比直接用system()更灵活可靠:

library(reticulate)
# 指定你要用的conda环境,比如默认的base环境
use_condaenv("base")
# 或者直接指定Python路径
# use_python("/Users/你的用户名/opt/anaconda3/bin/python")

# 执行Python脚本并传递参数
py_run_file("/Users/Downloads/Untitled3.py", args = c("EMEA", "regulatory", "10% productivity saves SOW"))

为什么会出现这个问题?

Shiny运行时的系统环境变量PATH和你终端里的不一样——终端里因为Anaconda的初始化配置,会把conda的Python路径放在PATH最前面,所以输入python时会优先用conda环境里的解释器;但Shiny启动时不会加载终端的配置(比如.bashrc/.zshrc),所以python指向的是系统默认的Python解释器,而这个解释器大概率没装pandas,自然就报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:21:59