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

在Google Colab中配置私有Python包及解决依赖、导入问题

问题1:pip安装私有包时依赖版本冲突解决

当你直接用!pip install git+https://****@github.com/mypackage.git安装包时,pip只会读取包本身的配置文件(如setup.cfg),仓库根目录的requirements.txt不会被自动应用——这个文件通常是给开发环境用的,不是包安装时的依赖依据。所以setup.cfg里的requests>=2会让pip安装满足条件的最新版本,进而和Colab自带的requests~=2.23.0冲突。

解决办法:

  • 修改setup.cfg的依赖配置,把requests>=2改成requests~=2.23.0,这样既匹配Colab的依赖要求,又允许小版本更新(比如2.23.x),避免版本冲突。修改后的setup.cfg片段:
    [options]
    install_requires =
        requests~=2.23.0
    
  • 如果暂时不想修改包的配置,可以在安装时强制指定依赖版本,命令改为:
    !pip install git+https://****@github.com/mypackage.git requests==2.23.0
    
    但这种方式只是临时 workaround,长期来看还是修改包的setup.cfg更稳妥。
  • 建议把requirements.txt里的依赖统一合并到setup.cfg的install_requires中,确保包的依赖声明唯一且明确,避免后续混淆。

问题2:Colab中导入子包提示ModuleNotFoundError

本地能正常导入但Colab不行,通常是包的打包或安装配置问题,常见原因和解决办法:

  • 检查子包的结构:确保package_2/resources目录下有__init__.py文件(即使是空文件)。虽然Python 3.3+支持无__init__.py的命名空间包,但Colab的环境可能对显式的包结构要求更严格。
  • 修改setup.cfg的包发现配置:手动列包容易遗漏,改用自动发现更可靠。修改setup.cfg:
    [options]
    packages = find
    
    [options.packages.find]
    where = .  # 指定从当前目录开始找包
    
  • 检查打包文件是否包含必要模块:如果你的package_2/resources里有非.py文件(如资源文件),需要在MANIFEST.in中声明包含这些文件,比如:
    include package_2/resources/*
    
    确保打包时这些文件被包含进去,否则安装后Colab里找不到对应的资源模块。
  • 清理Colab的缓存:先卸载旧版本再重新安装,避免残留的旧包干扰:
    !pip uninstall -y mypackage
    !pip install git+https://****@github.com/mypackage.git
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:03:12