5

如果您在一个同时使用两者的项目中工作,setup.py并且Pipfile您经常会在:Pipfile/[packages]和中找到相同的值setup.py/install_requires

有谁知道我怎么知道Pipfile使用setup.py/install_requiresfor 的值[packages]

4

1 回答 1

7

在你的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
于 2018-06-20T21:38:34.227 回答