2

我安装virtualenvwrapper了一个名为 3.5.0b1 virtualenv 的虚拟setupenv环境,以便能够轻松生成新的 python 3.5 测试环境。

查看已安装软件包的列表,我确实看到argparse安装了 1.3.0 版本。此(最新)版本argparse 尚未使用 3.5 进行测试

这很危险吗?

据我所知 3.2+ 自带argparse. 这个安装会破坏其他依赖的包argparse吗?为什么要安装这个?

4

1 回答 1

2

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

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

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

一点点挖掘(或使用pipdeptree包)会告诉你stevedore依赖于argparse. 这只是草率的编程(或无视可能的带宽问题)。在一个包中setup.py,您可以轻松地测试您是否正在运行 python < 2.7 或 3.0 <= python < 3.2,并且仅argparse在这些情况下安装。

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


这实际上是一个错误stevedore,它使用pbr包并支持使用环境标记指定 python 版本, 但stevedore不使用它。具有讽刺意味的是,这个例子pbr with argparse,通过在 中指定requirements.txt

argparse; python=='2.6'   

提交了一个错误报告stevedore,但尽管修复很简单,但没有在多个版本中实现。最后,问题被设置为无法修复,可能是因为放弃对 2.6 的支持完全消除了对 argparse 的需求。

于 2015-06-07T11:18:51.667 回答