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

使用Python Poetry安装Fivetran的salesforce_formula_utils包报错求助

解决Poetry安装Fivetran salesforce_formula_utils Git依赖时的"无setup.py生成egg_info"错误

问题背景

在DBT-Dagster项目中尝试通过Python Poetry安装Fivetran的salesforce_formula_utils包,该包未发布到PyPI,仅存于Git仓库且无Python包配置文件(如setup.py或pyproject.toml)。在pyproject.toml中添加如下Git依赖配置:

[tool.poetry.dependencies]
fivetran-salesforce-formula-utils = { git = "https://github.com/fivetran/salesforce_formula_utils.git", tag = "v0.9.0" }

执行poetry install时触发错误:

Installing dependencies from lock file
Warning: poetry.lock is not consistent with pyproject.toml. You may be getting improper dependencies. Run `poetry lock [--no-update]` to fix it.
Unable to determine package info for path: /workspaces/gdp-transforms-us/.venv/src/salesforce_formula_utils
Command ['/tmp/tmp_jtqwzzp/.venv/bin/python', '-'] errored with the following return code 1
No fallback setup.py file was found to generate egg_info.

解决方案

方案1:使用dbt官方包管理(推荐)

salesforce_formula_utils是dbt专用包,并非标准Python库,因此应该用dbt自带的包管理机制,而非Poetry:

  • 在dbt项目根目录创建/编辑packages.yml文件,添加:
    packages:
      - git: "https://github.com/fivetran/salesforce_formula_utils.git"
        revision: "v0.9.0"
    
  • 执行dbt命令完成安装:
    dbt deps
    
  • 安装后包会自动存放在dbt_packages目录,确保dagster的dbt资源配置能识别该目录即可。

方案2:手动添加Python包配置文件(适配Poetry管理场景)

如果项目架构要求必须用Poetry管理该依赖,需手动为Git仓库添加Python包配置:

  1. 克隆指定版本的仓库到本地临时目录:
    git clone https://github.com/fivetran/salesforce_formula_utils.git --branch v0.9.0
    
  2. 进入克隆目录,创建pyproject.toml(推荐):
    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
    [project]
    name = "fivetran-salesforce-formula-utils"
    version = "0.9.0"
    description = "Fivetran Salesforce Formula Utilities for dbt"
    
    或者创建setup.py:
    from setuptools import setup, find_packages
    
    setup(
        name="fivetran-salesforce-formula-utils",
        version="0.9.0",
        packages=find_packages(),
        description="Fivetran Salesforce Formula Utilities for dbt"
    )
    
  3. 将修改后的仓库推送到你的私有Git镜像仓库
  4. 更新项目的pyproject.toml,指向镜像仓库:
    [tool.poetry.dependencies]
    fivetran-salesforce-formula-utils = { git = "https://your-mirror-repo-url.git", tag = "v0.9.0" }
    
  5. 重新执行依赖安装:
    poetry lock --no-update
    poetry install
    

方案3:本地路径依赖(仅本地开发用)

如果只是本地开发测试,可以直接用路径依赖:

  1. 克隆仓库到项目本地目录:
    git clone https://github.com/fivetran/salesforce_formula_utils.git --branch v0.9.0 ./salesforce_formula_utils
    
  2. 按方案2的方式,给本地克隆的仓库添加pyproject.toml或setup.py
  3. 在项目pyproject.toml中添加路径依赖:
    [tool.poetry.dependencies]
    fivetran-salesforce-formula-utils = { path = "./salesforce_formula_utils" }
    
  4. 执行依赖安装:
    poetry lock --no-update
    poetry install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:36:05