维护virtualenv和pip的不同需求文件

3 python bash pip virtualenv

我知道我可以pip freeze用来帮助创建我的虚拟环境要求列表,但是我在管理所有不同的软件包时遇到了一些困难.

我想将一些软件包分开用于开发和生产,因为我使用了很多软件包(其中许多软件包彼此通用),所以生产和开发需求文件很难实现.我怎样才能更有效地保留我的生产和开发包分开?

Jos*_*ons 7

一点都不困难.

假设您有一个生产需求文件:production.txt一个用于开发:development.txt.创建第三个文件,shared.txt它具有所有共同的依赖项.然后,在每个相应的需求文件中,列出专属于所需环境的依赖项.在头部development.txtproduction.txt,链接到你的shared.txt使用-r shared.txt.现在,每个文件都会在加载独占依赖项之前加载公共依赖项.

例:

shared.txt

SharedExamplePackage1
SharedExamplePackage2
SharedExamplePackage3
SharedExamplePackage4
SharedExamplePackage5
Run Code Online (Sandbox Code Playgroud)

development.txt

-r shared.txt
DevExamplePackage1
DevExamplePackage2
Run Code Online (Sandbox Code Playgroud)

production.txt

-r shared.txt
ProductionExamplePackage1
ProductionExamplePackage2
ProductionExamplePackage3
Run Code Online (Sandbox Code Playgroud)


Sim*_*ser 5

您可以使用以下方法将一个需求文件包含到另

-r more_requirements.txt
Run Code Online (Sandbox Code Playgroud)

例如,该dev-requirements.txt文件可以包含生产要求以及其他开发包:

-r requirements.txt
mock
tox
Run Code Online (Sandbox Code Playgroud)

(等等)