【问题标题】:Should I commit /bin directory when working with virtualenv?使用 virtualenv 时我应该提交 /bin 目录吗?
【发布时间】:2016-10-18 15:45:29
【问题描述】:

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

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

但是,virtualenv 和 Python 项目框架都需要 /bin 目录,我是否也应该提交它? (其实我真的不知道/bin在Python项目中的作用是什么)

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

【问题讨论】:

  • pip freeze > requirements 足以保存虚拟环境的状态。 virtualenv 设置在您的系统上使用绝对路径,因此您的项目不适用于使用来自 git 克隆的 /bin 在他们的系统上克隆它的人,因此最好忽略所有 virtualenv 内容,包括 @987654329 @ 提交时的目录。顺便说一句,/bin 目录是由virtualenv 创建的,其中包含python 可执行文件,它用于在您的系统上运行您的项目。因此,当virtualenv 重新创建它时,您可以放心地在提交到 git 时忽略 /bin 目录。

标签: python git project virtualenv setuptools


【解决方案1】:

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

让我们想象一下,你完成了你的项目,我想用它来完成一项新任务。我用自己的 virtualenv 开始了一个新项目,并安装了一些我想使用的其他组件,然后是你的。糟糕,现在我的 Python 版本比我刚开始的时候要旧,两年前deactivate 中的那个 bug 不知何故又复活了。想象一下调试,更不用说发现你的项目替换了我的一些文件的烦恼。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 2016-02-22
    • 2021-08-26
    • 2011-10-06
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多