安装 virtualenvwrapper 会导致安装未经测试的 argparse

installing virtualenvwrapper causes untested argparse to be installed

我已经在名为 setupenv 的 3.5.0b1 virtualenv 中安装了 virtualenvwrapper,以便能够轻松生成新的 python 3.5 测试环境。

查看已安装软件包列表,我确实看到安装了 argparse 版本 1.3.0。 argparse has not been tested with 3.5.

的这个(最新)版本

这很危险吗?

据我所知,3.2+ 有自己的 argparse。此安装是否会破坏依赖 argparse 的其他软件包?为什么要安装这个?

这可能并不危险。如果你 运行:

python3.5 -c "import argparse; print(argparse.__file__)"

,可以看到随解释器安装的arparse.py优先于多余安装的argparse

一点点挖掘(或使用pipdeptree package) will show you that stevedore依赖于argparse。这只是草率的编程(或忽略可能的带宽问题)。 在包的 setup.py 中,您可以轻松测试 运行ning python < 2.7 或 3.0 <= python < 3.2,并且只为这些情况安装 argparse .

我只想从您的 setupenv virtualenv (pip uninstall argparse -y) 中卸载 argparse,根据我的经验,virtualenvwrapper 不受删除的影响。


这实际上是 stevedore 中的一个错误,它使用 pbr 包并且支持使用 environment markers 的 python 版本规范 但是 stevedore 没有使用它。具有讽刺意味的是,pbr 中的示例是 argparse,通过在 requirements.txt:

中指定
argparse; python=='2.6'   

针对 stevedorebug report 已提交,但尽管修复微不足道,但并未在多个版本中实施。最后的问题是 设置为不会修复,可能是因为放弃了对 2.6 的支持删除了 完全需要 argparse。