使用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包配置:
- 克隆指定版本的仓库到本地临时目录:
git clone https://github.com/fivetran/salesforce_formula_utils.git --branch v0.9.0 - 进入克隆目录,创建
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" ) - 将修改后的仓库推送到你的私有Git镜像仓库
- 更新项目的
pyproject.toml,指向镜像仓库:[tool.poetry.dependencies] fivetran-salesforce-formula-utils = { git = "https://your-mirror-repo-url.git", tag = "v0.9.0" } - 重新执行依赖安装:
poetry lock --no-update poetry install
方案3:本地路径依赖(仅本地开发用)
如果只是本地开发测试,可以直接用路径依赖:
- 克隆仓库到项目本地目录:
git clone https://github.com/fivetran/salesforce_formula_utils.git --branch v0.9.0 ./salesforce_formula_utils - 按方案2的方式,给本地克隆的仓库添加
pyproject.toml或setup.py - 在项目
pyproject.toml中添加路径依赖:[tool.poetry.dependencies] fivetran-salesforce-formula-utils = { path = "./salesforce_formula_utils" } - 执行依赖安装:
poetry lock --no-update poetry install
内容的提问来源于stack exchange,提问作者Govinda
相关产品推荐
相关产品推荐

