为什么pip中有用的命令行选项未记录并明确隐藏?

mus*_*_ut 8 python pip virtualenv

export PIP_REQUIRE_VIRTUALENV=true;在我的工作中.bashrc用来确保在为我工作的各种项目安装软件包时不会不小心污染我的全局环境.

我隐约记得这与--require-virtualenv在调用时向命令行添加a相同pip.

但是,除了pip的源代码之外,我无法在任何地方找到任何文档,其中明确禁止了该功能的帮助(使用)!有11个这样的选项,帮助也被明确禁用(例如).SUPRESS_HELP--no-input

我浏览了该文件的历史记录,但没有发现为什么该功能隐藏在提交消息中.

这是一个不应该依赖的实验性特征吗?我不应该使用(也不鼓励他人使用)这些功能,或者使用这些功能有不同的方法吗?有人可以对这个难题发表一些看法吗?


更新:pipGithub页面上提出了这个问题.

Ton*_*leh 1

免责声明:我不是 pip 的撰稿人,这些只是猜测,而不是 pip 作者或维护者的见解。

以下一项或多项可能导致作者隐藏选项:

  1. 有些选项实际上是无用的,其存在是为了完整性和兼容性,但通常不会被阅读帮助的人使用。例如,--use-wheel默认情况下启用。

  2. 某些选项是过渡性的或已弃用的,不应使用,因为它们可能会在未来版本中删除。例如--use-mirrors,它标有注释TODO:Remove after 6.0

  3. 某些选项可能是实验性的,或者可能不适用于所有环境。对于希望软件跨平台的最终用户来说,这可能是一个问题,而作者没有经历测试环境和放置条件语句的麻烦 - 对于不经常使用的专用选项来说,这可能是不必要的复杂性。也许--default-vcs就是一个例子。

  4. 另一种可能性是,很少使用的选项的行为是非标准的或难以描述,因为它取决于外部变量或环境,在这种情况下,抑制帮助可能比提供令人困惑的帮助更容易。

  5. 当我是 的维护者时grep,我们最初有许多未记录的选项。这些选项的行为是非标准的(例如,不符合 POSIX),但由于历史原因而存在,删除它们可能会破坏世界各地可能正在使用它们的关键系统脚本。我不知道 pip 中是否存在任何此类选项,但为了完整起见,我想提及这一点,作为某些选项可能被隐藏的原因。

  • 6. 某些选项可能供内部使用(例如单元测试脚本),并且在该特定场景之外具有有限的功能和/或有用性。 (2认同)