How to customize a requirements.txt for multiple environments?

后端 未结 3 914
你的背包
你的背包 2020-11-29 15:26

I have two branches, Development and Production. Each has dependencies, some of which are different. Development points to dependencies that are themselves in development. L

3条回答
  •  盖世英雄少女心
    2020-11-29 16:13

    You can cascade your requirements files and use the "-r" flag to tell pip to include the contents of one file inside another. You can break out your requirements into a modular folder hierarchy like this:

    `-- django_project_root
    |-- requirements
    |   |-- common.txt
    |   |-- dev.txt
    |   `-- prod.txt
    `-- requirements.txt
    

    The files' contents would look like this:

    common.txt:

    # Contains requirements common to all environments
    req1==1.0
    req2==1.0
    req3==1.0
    ...
    

    dev.txt:

    # Specifies only dev-specific requirements
    # But imports the common ones too
    -r common.txt
    dev_req==1.0
    ...
    

    prod.txt:

    # Same for prod...
    -r common.txt
    prod_req==1.0
    ...
    

    Outside of Heroku, you can now setup environments like this:

    pip install -r requirements/dev.txt
    

    or

    pip install -r requirements/prod.txt
    

    Since Heroku looks specifically for "requirements.txt" at the project root, it should just mirror prod, like this:

    requirements.txt:

    # Mirrors prod
    -r requirements/prod.txt
    

提交回复
热议问题