我已经在名为virtualenvwrapper
的3.5.0b1 virtualenv中安装了setupenv
,以便能够轻松生成新的python 3.5测试环境。
查看已安装软件包的列表,我确实看到安装了argparse
版本1.3.0。这个({1}} has not been tested with 3.5的最新版本。
据我所知,3.2+带有自己的argparse
。这个安装可能会破坏依赖argparse
的其他软件包吗?为什么要安装这个?
答案 0 :(得分: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
virtualenv(setupenv
)中卸载pip uninstall argparse -y
,virtualenvwrapper不受我的经验中删除的影响。
这实际上是stevedore
中的一个错误,它使用pbr
包并支持使用environment markers指定python版本
但是stevedore
没有使用它。具有讽刺意味的是,pbr
argparse
的示例与requirements.txt
相符合
argparse; python=='2.6'
stevedore
针对import java.util.Scanner;
public class Homework
{
public Scanner s;
public String wordToTest;
public void HomeWork()
{
s = new Scanner(System.in);
wordToTest = s.next();
Check(wordToTest);
}
public static void Check(String testWord)
{
String aWord = "palinder";
if (aWord.equals(testWord))
{
System.out.println("The word "+testWord+" is a palinder");
}
else
{
System.out.println("The word "+testWord+" isn't a palinder");
}
}
}
提交了bug report,但虽然此修复程序很简单,但并未针对多个版本实施。最后问题是
设置为不会修复,可能是因为支持2.6删除了
完全需要argparse。