Совместное использование локальных python сценариев между пакетами - PullRequest
1 голос
/ 04 марта 2020

Я просмотрел информацию здесь: Как я могу заставить setuptools (или распространять) установить пакет из локальной файловой системы

Похоже, этот вопрос был опубликован очень долго время go, и я надеюсь, что за семь лет, прошедших с момента публикации, в мире 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

Я обнаружил, что повторяю одни и те же биты вспомогательных функций в контексте каждого пакета и хотел бы поместить эти вспомогательные функции в одно место, а затем иметь связанные скопируйте файлы shared_utils либо в папку shared_utils в каждом пакете, либо даже просто скопируйте util1.py в существующий каталог libs для каждого пакета.

Каков самый "pythoni c" способ достижения sh этого?

Сейчас кажется, что мои единственные варианты были бы:

  1. Используйте файл require.txt, как указано выше, где я могу, и используйте настраиваемую команду в файле setup.py, где нельзя использовать файл require.txt.
  2. Создайте ссылку уровня os из каталога shared_utils в каждый пакет так, чтобы он Похоже, что каталог существует в каждом из моих пакетов.
  3. Упакуйте мои shared_utils, а затем установите прямо из git. Несмотря на то, что для этого варианта снова требуется файл require.txt, а в некоторых моих средах развертывания я не могу полагаться на файл require.txt, но мне все нужно запустить через setup.py

1 Ответ

0 голосов
/ 04 марта 2020

Если вы не можете использовать require.txt, возможно, вы можете использовать install_requires и go пакета setuptool root. Это решит вашу проблему?

...