我下载了一个Python项目,它包含一个虚拟环境和一个requirements.txt文件。你为什么要两个?据我所知,虚拟环境已经包含了所需的模块。知道何时以及为什么这种组合会有用?
答案 0 :(得分:5)
虽然技术上可行,但我没有找到任何合理的理由。两者都令人困惑,因为不清楚哪一个是" master"。你必须(或不是)担心已安装的软件包和requirements.txt文件之间的一致性。
在许多情况下,venv和已安装的软件包也依赖于底层操作系统,它们具有二进制文件,不同的布局等。通常建议编写与os无关的代码。
总而言之,我会坚持使用requirements.txt文件并从项目的回购中删除任何venv文件夹。
答案 1 :(得分:1)
您无法将virtualenv目录与项目一起分发,因为内容可能因目标操作系统和操作系统版本而异。具体来说,包含安装在Ubuntu 14.04上的已编译组件的库的virtualenv将与安装在Ubuntu 16.04上的等效virtualenv不同。
相反,你应该分发你的requirements.txt
文件(只是一个约定,你可以使用你想要的任何文件名),这样最终用户就可以在他的机器上重新创建virtualenv。