2015-06-07 10 views
2

Я установил virtualenvwrapper в виртуальный виртуальный диск 3.5.0b1, называемый setupenv, чтобы иметь возможность легко создавать новые тестовые среды python 3.5.установка virtualenvwrapper вызывает установку непроверенного argparse

Осмотр списка установленных пакетов, я видел argparse версии 1.3.0. Эта (последняя) версия argparsehas not been tested with 3.5.

Это опасно?

Насколько я знаю, 3.2+ поставляется со своим собственным argparse. Может ли это установить разрыв других пакетов, основанных на argparse? Почему это вообще установлено?

ответ

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 с вашего setupenv virtualenv (pip uninstall argparse -y), на виртуальный вентилятор не повлиял на удаление в моем опыте.


Это на самом деле ошибка в stevedore, он использует pbr пакет и поддерживает спецификацию версии питона с помощью environment markers но stevedore не использует это. Ирония заключается в том, что пример для этого в pbrявляется с argparse, указав в requirements.txt:

argparse; python=='2.6' 

bug report против stevedore был подан, но хотя исправление было тривиальным, оно не было реализовано несколько версий , Наконец, проблема была набор не будет исправлен, возможно, потому что потерянная поддержка для 2.6 удалила потребность в argparse вообще.