我安装virtualenvwrapper
了一个名为 3.5.0b1 virtualenv 的虚拟setupenv
环境,以便能够轻松生成新的 python 3.5 测试环境。
查看已安装软件包的列表,我确实看到argparse
安装了 1.3.0 版本。此(最新)版本argparse
尚未使用 3.5 进行测试。
这很危险吗?
据我所知 3.2+ 自带argparse
. 这个安装会破坏其他依赖的包argparse
吗?为什么要安装这个?
我安装virtualenvwrapper
了一个名为 3.5.0b1 virtualenv 的虚拟setupenv
环境,以便能够轻松生成新的 python 3.5 测试环境。
查看已安装软件包的列表,我确实看到argparse
安装了 1.3.0 版本。此(最新)版本argparse
尚未使用 3.5 进行测试。
这很危险吗?
据我所知 3.2+ 自带argparse
. 这个安装会破坏其他依赖的包argparse
吗?为什么要安装这个?
这可能并不危险。如果你运行:
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
从您的setupenv
virtualenv ( pip uninstall argparse -y
) 中卸载,根据我的经验,virtualenvwrapper 不会受到删除的影响。
这实际上是一个错误stevedore
,它使用pbr
包并支持使用环境标记指定 python 版本,
但stevedore
不使用它。具有讽刺意味的是,这个例子pbr
是with argparse
,通过在 中指定requirements.txt
:
argparse; python=='2.6'
提交了一个错误报告stevedore
,但尽管修复很简单,但没有在多个版本中实现。最后,问题被设置为无法修复,可能是因为放弃对 2.6 的支持完全消除了对 argparse 的需求。