为virtualenv和pip维护不同的需求文件
我知道可以用 pip freeze
来帮助我列出虚拟环境中需要的包,但我在管理这些不同的包时遇到了一些困难。
我想把一些包分开,用于开发和生产环境,但因为我用的包太多了(很多包是重复的),所以同时维护开发和生产的需求文件实在太麻烦了。我该怎么更有效地把生产和开发的包分开呢?
2 个回答
5
你可以通过以下方式把一个需求文件包含到另一个需求文件里:
-r more_requirements.txt
比如,dev-requirements.txt
文件可以包含生产环境所需的包,还有额外的开发包:
-r requirements.txt
mock
tox
(等等)
7
其实并不难。
假设你有一个用于生产环境的需求文件:production.txt
,还有一个用于开发环境的需求文件:development.txt
。你可以再创建一个第三个文件,叫做shared.txt
,里面列出所有共同需要的依赖。然后,在每个需求文件中,列出那些只在特定环境下需要的依赖。在development.txt
和production.txt
的开头,使用-r shared.txt
来链接到你的shared.txt
。这样,每个文件在加载特定环境的依赖之前,都会先加载共同的依赖。
举个例子:
shared.txt
SharedExamplePackage1
SharedExamplePackage2
SharedExamplePackage3
SharedExamplePackage4
SharedExamplePackage5
development.txt
-r shared.txt
DevExamplePackage1
DevExamplePackage2
production.txt
-r shared.txt
ProductionExamplePackage1
ProductionExamplePackage2
ProductionExamplePackage3