如果没有标志,我无法运行项目的任何脚本,并且我认为它干扰了在我的 python 环境中工作的气流

I can't run any script of my project without a flag and I supect it is interfering on airflow working on my python env

提问人:Lucas Vital 提问时间:11/17/2023 最后编辑:Lucas Vital 更新时间:11/17/2023 访问量:37

问:

我面临的问题是,到目前为止,这个问题是可以控制的。在我的 conda 环境中安装本地包后,我需要添加一个标志来运行项目中的任何脚本,例如简单的数据提取脚本:

script to extract data

最初,它很好;我只是添加了标志,开发仍在继续。当我在 Airflow 中实现 DAG 时,问题就开始了,一个简单的命令(如停止工作):sh airflow dags list

Airflow DAGs issue

我记得这个问题是在我通过运行更新本地包后开始的:

python setup.py build
python setup.py install

在为此苦苦挣扎了一整天之后,我休息了一下,今天重新审视了它。我创建了一个新环境并重新安装了 Airflow,它按预期工作:airflow dags list

Airflow working in new environment

但是,我仍然没有找到解决方案,我怀疑它阻止了我触发我的 DAG。有人可以帮忙吗?

如果需要,我会提供我的:setup.py

from setuptools import setup, find_packages
from pathlib import Path
import os

project_dir = Path(__file__).resolve().parent.resolve().parent.resolve().parent
presets_dir = os.path.abspath(os.path.join(os.path.pardir, 'python'))

reqs = project_dir.joinpath("requirements.txt").read_text().splitlines()
print(project_dir.joinpath("requirements.txt"))
setup(
    name="fila-espera-pkg",
    version="v1.0.0",
    description="Module and packages used in the queue waiting project",
    long_description=project_dir.joinpath("README.md").read_text(),
    long_description_content_type="text/markdown",
    author="Lucas Vital",
    author_email="[email protected]",
    license="MIT License",
    packages=find_packages(exclude=("assets", "scripts/python/notebooks")),
    install_requires=reqs,
    classifiers=[
        "Intended Audience :: Science/Research",
    ],
    package_dir={'listaespera': 'listaespera'},
    package_data={},
    zip_safe=False
)

能够在没有不需要的标志重新查询的情况下运行我的 python 脚本并运行气流命令,而不会在我的 python 环境中出现任何问题

气流 python-packaging

评论

0赞 Lucas Vital 11/17/2023
我怀疑得到了证实,。这个问题与我的安装包有关,但我仍然不知道为什么
0赞 John Gordon 11/17/2023
当你运行时,执行什么实际命令?向我们显示输出(如果不是 linux,则相当于您的操作系统)airflowwhich airflowwhich
0赞 Lucas Vital 11/17/2023
我正在尝试运行逗号,例如“气流任务测试<dag_id> <task_id> <start_date>”气流版本为2.7.3airflow dags list
0赞 John Gordon 11/17/2023
是的,我知道。我怀疑您的环境已重新分配命令名称以实际运行其他命令。这就是告诉你的。airflowwhich
0赞 Lucas Vital 11/17/2023
然后我运行: ''sh > (venv) lucas.alves@DES-0198:~/projects/listaespera/scripts/python$ which airflow /home/lucas.alves/anaconda3/envs/venv/bin/airflow '''

答:

0赞 Lucas Vital 11/17/2023 #1

我不知道为什么,但一位同事发现使用 .toml 而不是使用 setup.py 可以解决问题。问题可能是 pip 的错误,不确定:

enter image description here

我只是卸载了我的本地软件包,setup.py,添加了 .toml 并重新运行 pip 安装 -e 。在项目根目录上,问题已解决。