Как синхронизировать значения в setup.py / install_requires с Pipfile / packages

Если вы работаете над проектом, который использует оба setup.py а также Pipfile Вы часто находите одинаковые значения в: Pipfile/[packages] а также setup.py/install_requires,

Кто-нибудь знает, как я могу сказать Pipfile использовать значения из setup.py/install_requires за [packages]?

1 ответ

В вашем setup.py:

  1. Определите функцию для чтения раздела:

    def locked_requirements(section):
    """Look through the 'Pipfile.lock' to fetch requirements by section."""
        with open('Pipfile.lock') as pip_file:
            pipfile_json = json.load(pip_file)
    
        if section not in pipfile_json:
            print("{0} section missing from Pipfile.lock".format(section))
            return []
    
        return [package + detail.get('version', "")
                for package, detail in pipfile_json[section].items()]
    
  2. В пределах setup функция возвращает список из default раздел:

    setup(
        # ...snip...
        install_requires=locked_requirements('default'),
        # ...snip...
    )
    

ВАЖНОЕ ПРИМЕЧАНИЕ: включите Pipfile.lock в пределах MANIFEST.in лайк:

include Pipfile.lock
Другие вопросы по тегам