使用 virtualenv 时我应该提交 /bin 目录吗?

Should I commit /bin directory when working with virtualenv?

我正在开始我的第一个实际 python 项目。我按照 "Learn Python the Hard Way" 做了一个初始 Python skeleton 我也在使用 virtualenv。

现在我想用git做版本控制。根据 SO 中之前的一些问题,不建议我提交任何 virtualenv 文件。相反,我可以使用 pip freeze > requirements.txt,并使用 .gitignore 忽略 virtualenv 目录。

然而,virtualenv 和 Python 项目框架都需要一个 /bin 目录,我是否也应该提交它? (其实我也不太清楚/bin在Python项目中的作用是什么)

感谢任何建议,如果我设置 Python 项目的过程有问题,请纠正我。

yourproject/binyourproject/env/bin 不同,其中 yourproject/env 是虚拟环境的目录(它们都不在根目录中 /bin)。您应该忽略 env 中的所有内容,事实上,您的项目应该适用于不使用虚拟环境或以不同方式管理虚拟环境的人。否则,您将失去好处。

让我们想象一下,您完成了项目,而我想将其用于新任务。我用自己的 virtualenv 开始了一个新项目,并安装了一些我想使用的其他组件,然后是你的。哎呀,现在我的 Python 版本比我开始时的版本还旧,而且两年前 deactivate 中的那个错误不知何故复活了。想象一下调试,更不用说发现你的项目替换了我的一些文件的烦恼。

(随着这些事情的发展,bin 目录是虚拟环境中一个相当静态的部分;切换我私有 env 的其他部分会更具破坏性。如果你提交 lib 你会阻止我在你之前安装任何其他组件。)