2015-08-04 4 views
12

Я использую Ubuntu 14.04 с версией python 2.7.6. Сегодня, когда я создал новый virtualenv и попытался сделать pip install requests, я получил ошибку InsecurePlatformWarning.pip install requests [security] vs pip install requests: Difference

Я решил эту проблему, следуя инструкции здесь

SSL InsecurePlatform error when using Requests package

Но я хочу, чтобы понять, что фактическая разница между этими двумя командами: pip install requests[security] и pip install requests.

1) Почему первые устанавливают 3 дополнительных пакета?

2) Есть ли какие-либо вещи, о которых мне нужно заботиться, когда я нажимаю код на производство?

3) Оба они ведут себя одинаково в целом?

Я много искал в stackoverflow и в другом месте, но не смог найти ответ. Если он уже был дан ответ, отправьте ссылку.

Спасибо.

ответ

25

Почему первые устанавливают 3 дополнительных пакета?

Использование requests[security] вместо requests установит three additional packages:

  • pyOpenSSL
  • криптография
  • IDNA

Они определены в extras_requires как optional features with additional dependencies.

Есть ли какие-либо вещи, о которых мне нужно заботиться, когда я нажимаю код на производство?

Вы должны убедиться, что вы можете установить эти дополнительные пакеты без каких-либо проблем и что любые изменения способа работы SSL-соединений не влияют на ваше использование.

Оба они ведут себя одинаково в целом?

Использование этих пакетов в отличие от стандартных стандартных параметров библиотеки позволит использовать более безопасные SSL-соединения.

Для получения дополнительной информации, here's the pull request where it was merged in и here is the issue where it was discussed.

(Из комментариев, для того, когда GitHub уходит):

Так прямо сейчас SSL соединения при использовании pyOpenSSL, нсг-httspclient и pyasn1 являются более безопасными, чем если бы вы просто использовать опции STDLIB ,Однако на самом деле сложно запомнить эти три вещи. Было бы здорово, если бы просит добавить дополнительный к его setup.py так, что люди могут установить запросы с betterssl (Donald Stufft)


Также по запросам по умолчанию не может подключиться к некоторым сайтов на OSX из-за древнего OpenSSL. Использование вышеуказанных 3 пакетов позволяет. (Дональд Штаффт)

+0

Спасибо за ответ. Это отвечает на все мои вопросы! (Будет ждать когда-нибудь, прежде чем я приму ответ, на всякий случай, если у кого-то будет другой ответ, хотя, я думаю, это не так) – Ymartin

+1

@citruspi «На Python 3.4+ и Python 2.7.9 + это уже не лучше »см. [здесь] (https://github.com/kennethreitz/requests/pull/2195#issuecomment-53934322) –