【问题标题】:installing virtualenvwrapper causes untested argparse to be installed安装 virtualenvwrapper 会导致安装未经测试的 argparse
【发布时间】:2015-08-21 22:48:10
【问题描述】:

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

查看已安装软件包的列表,我确实看到安装了 argparse 版本 1.3.0。这个(最新)版本的argparsehas not been tested with 3.5

这很危险吗?

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

【问题讨论】:

    标签: argparse virtualenvwrapper python-3.5


    【解决方案1】:

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

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

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

    稍加挖掘(或使用pipdeptree 包)将告诉您stevedore 依赖于argparse。这只是草率的编程(或无视可能的带宽问题)。 在包的 setup.py 中,您可以轻松测试您是否正在运行 python 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2018-01-30
      相关资源
      最近更新 更多