如果您在一个同时使用 setup.pyPipfile 的项目上工作,您经常会在以下位置找到相同的值: Pipfile/[packages]setup.py/install_requires

有谁知道我如何告诉 Pipfilesetup.py/install_requires 中的值用于 [packages]

最佳答案

在您的 setup.py 中:

  • 定义一个函数来读取一个section:
    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()]
    
  • setup 函数中返回 default 部分的列表:
    setup(
        # ...snip...
        install_requires=locked_requirements('default'),
        # ...snip...
    )
    

  • 重要说明 :在 Pipfile.lock 中包含 MANIFEST.in,例如:
    include Pipfile.lock
    

    关于python - 如何将 setup.py/install_requires 中的值与 Pipfile/packages 同步,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49496994/

    10-10 23:50