虽然在技术上这是可能的,但我没有找到任何好理由去这样做。同时拥有两者会引起混淆,因为不清楚哪一个是“主要的”。并且你必须(或者不必?)担心已安装包和requirements.txt文件之间的一致性。此外,venv和许多情况下已安装的包依赖于底层操作系统,它们有二进制文件、不同的布局等。通常建议编写操作系统无关的代码。总之,我建议坚持使用requirements.txt文件,并从项目存储库中删除任何venv文件夹。
您不能将virtualenv目录与项目一起分发,因为其内容可能会因目标操作系统和操作系统版本的不同而有所差异。特别是,在Ubuntu 14.04上安装了编译组件的库的virtualenv将与在Ubuntu 16.04上安装的等效virtualenv不同。相反,您应该分发您的requirements.txt文件(只是一种约定,您可以使用任何文件名),以便最终用户能够在他的计算机上重新创建一个virtualenv。