Conda环境下Python导入streamlit-extras路径异常求助
解决Conda环境中streamlit-extras导入路径异常问题
核心原因
你遇到的问题本质是运行Streamlit的Python解释器是系统自带的3.7版本,而非Conda环境中的3.10.9版本,从报错栈里/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/streamlit/...的路径就能验证这一点——Streamlit本身是安装在Python3.7环境中的,启动时自然会用该环境的路径查找依赖。
具体解决步骤
1. 在Conda环境内安装Streamlit
先激活你的目标Conda环境,确保环境内安装了Streamlit(避免调用系统版本):
conda activate 你的环境名称 pip install streamlit
2. 验证并使用环境内的Streamlit启动项目
- 激活环境后,先确认Streamlit的路径是否指向Conda环境:
which streamlit
正常输出应该是类似/Users/你的用户名/miniconda3/envs/你的环境名/bin/streamlit的路径,而非Python3.7的目录。
- 路径正确的话,直接用环境内的Streamlit启动脚本:
streamlit run /Users/abduraimovusmanjon/Desktop/danger/pages/1_🎢_Insights.py
- 如果路径不对,直接用绝对路径调用环境内的Streamlit:
/Users/你的用户名/miniconda3/envs/你的环境名/bin/streamlit run /Users/abduraimovusmanjon/Desktop/danger/pages/1_🎢_Insights.py
3. 备选:脚本内强制指定导入路径
如果上述方法无效,可在脚本开头添加代码,强制将Conda环境的依赖路径加入Python导入优先级:
import sys import site # 替换为你的Conda环境site-packages路径,示例如下 conda_site_dir = "/Users/你的用户名/miniconda3/envs/你的环境名/lib/python3.10/site-packages" # 将该路径加入导入搜索的最前端 site.addsitedir(conda_site_dir) # 之后再执行导入 from streamlit_extras.let_it_rain import rain
4. 排查环境变量(彻底解决)
激活Conda环境后,检查PATH变量是否将环境的bin目录放在最前:
echo $PATH
正常情况下,Conda环境的bin目录应该是输出的第一个路径,这样系统会优先调用环境内的可执行文件,避免误调用系统Python。
内容的提问来源于stack exchange,提问作者Ranger
相关产品推荐
相关产品推荐

