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

标签 argparse virtualenvwrapper python-3.5

我在 3.5.0b1 virtualenv 中安装了 virtualenvwrapper,名为 setupenv,以便能够轻松生成新的 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 包)就会告诉你 stevedore依赖于argparse。这只是草率的编程(或忽视可能的带宽问题)。 在包的 setup.py 中,您可以轻松测试您是否正在运行 python < 2.7 或 3.0 <= python < 3.2,并且仅在这些情况下安装 argparse

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


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

argparse; python=='2.6'   

一个bug report针对stevedore 已提交,但尽管修复很简单,但并未在多个版本中实现。最后的问题是 设置为无法修复,可能是因为放弃了对 2.6 的支持删除了 完全需要 argparse。

关于argparse - 安装 virtualenvwrapper 会导致安装未经测试的 argparse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30692722/

相关文章:

python - Pandas 数据框在满足双重标准时更改值

python - pip: "/Volumes/HD: 错误的解释器: 没有这样的文件或目录

python-3.x - Python argparse的字符串值可能为空

python - 将 optparse 转换为 argparse

python-3.x - pytest argparse 测试用例不起作用

python - Virtualenvwrapper - .bash_profile 的正确设置

python - virtualenvwrapper.user_scripts 找不到 get_env_details

python - 禁用 argparse 和 optparse 的唯一前缀匹配

python - 如何强制 virtualenv 从 pypi 安装最新的 setuptools 和 pip?

legend - 子图外的 Python3 Seaborn PairGrid 图例