在包之间共享本地python脚本

在包之间共享本地python脚本,python,python-3.x,google-cloud-platform,setuptools,Python,Python 3.x,Google Cloud Platform,Setuptools,我在这里回顾了这些信息: 看起来这个问题很久以前就发布了,我希望在发布后的七年中,Python世界在管理依赖项方面有了一些新的发展 具体而言,在我们的案例中,我们正在处理相关GCP包的存储库: src/ airflow/ __init__.py dags/ __init__.py requirements.txt dag1.py libs/

我在这里回顾了这些信息:

看起来这个问题很久以前就发布了,我希望在发布后的七年中,Python世界在管理依赖项方面有了一些新的发展

具体而言,在我们的案例中,我们正在处理相关GCP包的存储库:

src/
    airflow/
        __init__.py
        dags/
            __init__.py
            requirements.txt
            dag1.py
            libs/
                __init__.py
                utils.py
        tests/
             dags/
                 test_dag1.py
        plugins/
    dataflow/
        __init__.py
        setup.py
        dataflow1.py
        libs/
             __init__.py
             utils.py
    cli_helper/
         __init__.py
         cli_command.py
         libs/
             __init__.py
             util.py
    shared_utils/
        util1.py
我发现自己在每个包的上下文中重复了相同的助手函数位,并希望将这些助手函数放在一个位置,然后在每个包下的共享utils文件夹中创建共享utils文件的链接副本,甚至只在现有包下创建一个
util1.py
副本
libs
每个包的目录

实现这一点最“蟒蛇式”的方式是什么

现在看来,我唯一的选择是:

  • 在我可以使用的地方使用上面列出的requirements.txt,在setup.py中不能使用requirements.txt的地方使用自定义命令
  • 创建一个操作系统级链接,将共享的_utils目录链接到每个包中,这样每个包中都会出现该目录
  • 打包我的共享工具,然后直接从git安装。尽管此选项再次需要requirements.txt,并且在我的一些部署环境中,我不能依赖requirements.txt,我必须通过setup.py运行所有内容

  • 如果不能使用requirements.txt,也许可以使用setuptool并转到共享的_utils包根目录。这能解决您的问题吗?

    如果您不能使用requirements.txt,也许您可以使用setuptool并转到共享的utils包根目录。这能解决你的问题吗