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

使用PyGithub+Streamlit构建仓库Web应用时遇导入错误求助

问题描述

我想编写一个基于Python和Streamlit部署的脚本,用于列出指定GitHub仓库的内容,请问这是否可行?我尝试实现时始终遇到如下报错:

ImportError: cannot import name 'Github' from 'github' (/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/github/init.py)
Traceback:
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 564, in _run_script
exec(code, module.dict)
File "/Users/blanc/Desktop/My-notes/webpage.py", line 1, in
from github import Github

单独在控制台执行from github import Github语句可正常运行,我已反复确认所需依赖(含对应版本的PyGithub)均已安装,不知还有何解决办法,恳请帮助。

我使用的代码如下:

from github import Github

def list_content_repo():
    g = Github()
    # github username
    username = g.get_user("gitblanc")
    # Obtain the repository
    repo = username.get_repo("Obsidian-Notes")
    print(repo.get_contents(""))
解决办法
  • 检查Streamlit关联的Python解释器
    控制台能正常运行说明默认Python环境已安装PyGithub,但Streamlit可能使用了不同的Python环境。执行streamlit --version查看它绑定的Python版本,再用对应版本的pip确认并安装PyGithub:

    # 示例:若Streamlit使用Python3.9
    python3.9 -m pip install PyGithub
    
  • 排查同名包冲突
    存在一个名为github的第三方包(非PyGithub)可能导致导入混淆,先卸载冲突包:

    pip uninstall github
    

    之后重新安装PyGithub:

    pip install PyGithub
    
  • 用虚拟环境隔离依赖
    创建虚拟环境并激活,在隔离环境中安装所需依赖,避免全局环境的包混乱:

    # 创建虚拟环境
    python3 -m venv streamlit_env
    # Mac/Linux下激活环境
    source streamlit_env/bin/activate
    # 安装依赖
    pip install streamlit PyGithub
    # 在虚拟环境中运行脚本
    streamlit run webpage.py
    
  • 强制指定PyGithub导入路径(临时方案)
    若上述方法无效,可在脚本开头添加代码,强制指定PyGithub的安装路径:

    import sys
    sys.path.insert(0, '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages')
    from github import Github
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:35:42