Pip не устанавливает последнюю доступную версию из pypi (в данном случае argparse)
В последнее время я работал над некоторыми проектами на Python и у меня было много проблем сpip
не устанавливать последние версии некоторых требований. Я наosx
и я использовалзаваривать установитьPython 2.7.6
, В проекте, над которым я работаю, мы простоpip install -r requirements.txt
, В текущем случае мне нужно было установитьargparse==1.2.1
, Это актуальная последняя показанная версияна сайте Pypi
Вот мой вывод
Downloading/unpacking argparse==1.2.1 (from -r requirements.txt (line 4))
Could not find a version that satisfies the requirement argparse==1.2.1 (from -r requirements.txt (line 4)) (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1)
Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for argparse==1.2.1 (from -r requirements.txt (line 4))
У меня были похожие проблемы с различными требованиями, такими какmatplotlib
который я установил вручную, как видноВот.
Как вы можете видеть, pip на моем Mac имеет только те версии argparse:0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0, 0.9.1, 1.0.1, 1.0, 1.1
Я попытался переустановить Python сbrew reinstall python
Затем также попытался переустановить все мои установленные пакеты Python с помощью некоторого волшебства xargs:pip freeze | xargs -I {} sudo pip install {} --upgrade --force-reinstall
.
При попытке переустановить все, у меня были проблемы с большинством пакетов:error: invalid command 'egg_info'
, Я понял, у меня был старыйsetuptools
так что яpip install --upgrade setuptools
и я мог бы теперь переустановить все, но все же, та же проблема сargparse
, Все та же проблема с argparse.
Я попросил друга с недавно установленным OSXpip install argparse
и он получил1.1
Итак, я настроилprecise32
бродячая коробка для чистой установки Ubuntu сpython-dev
+ libevent-dev
и не было никаких проблем при установкеargparse==1.2.1
.
Чтобы продолжить работу над проектом, я установил argparse 1.1 на osx, и, похоже, он отлично работает для того, над чем я работаю.
ВопросыЯ не очень хорош с pypi (пока), но есть ли какая-то причина, почему я не получаю последние версии, показанные на pypi? Похоже, что не все библиотеки Pypi доступны для OSX. Есть ли способ узнать доступность версии для разных ОС?
Изменить: решение внутриargparse1.1
кажется такой же, как1.2.1
как показано на этом выходе
vagrant@precise32:~$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import argparse
>>> argparse.__version__
'1.1'
>>> quit()
vagrant@precise32:~$ pip freeze | grep argparse
argparse==1.2.1
Я пытался использовать--allow-external
на OSX, но не понял, что нужно снова имя пакета.
sudo pip install argparse --allow-external argparse --upgrade
и вуаля :)
argparse an externally hosted file and may be unreliable
Downloading/unpacking argparse from http://argparse.googlecode.com/files/argparse-1.2.1.tar.gz#md5=2fbef8cb61e506c706957ab6e135840c
Downloading argparse-1.2.1.tar.gz (69kB): 69kB downloaded
Как указал Питер, последняя версия пипаdefault to disallowing externally hosted files
.