我是编程和python的初学者。我阅读了pip-tools文档中的pip编译定义,但我不能理解。有人能给我解释一下吗?更具体地说,编译requirements.in生成requirements.txt意味着什么?
发布于 2021-03-27 15:11:50
您希望能够锁定Python代码在requirements.txt文件中所依赖的所有包的版本。您希望该文件不仅包含代码直接导入的直接依赖项的版本,还包括所有传递依赖项的版本,就像well...that一样,即直接依赖的模块本身所依赖的模块的版本。
那么问题是,你是否维护了"requirements.txt“的内容?您可以使用pip freeze > requirements.txt,但这太麻烦了。它不取决于应用程序的直接依赖关系的清晰列表,而是取决于创建时环境中的内容。您真正想要的是有一个文件,在其中列出应用程序的直接依赖项,以及每个依赖项的版本,然后以某种方式从该列表中生成适当的requirements.txt文件,以便它包含这些直接依赖项的确切版本,以及仅包含这些直接依赖项所需的传递依赖项的版本。
requirements.in文件和pip-compile一起为您提供了所需的行为。在requirements.in中,您只列出应用程序的直接依赖项。然后对该文件运行pip-compile以生成requirements.txt。编译过程将生成您想要的内容...一个包含requirements.in中列出的模块和这些模块的传递依赖项的文件。
https://stackoverflow.com/questions/66751657
复制相似问题