Если я устанавливаю пакет с pip в среде Python 3, гарантированно ли этот пакет будет совместим с Python 3? - PullRequest
1 голос
/ 30 мая 2019

У меня есть среда Python 3, все работает правильно и как положено, то есть:

$ python --version
Python 3.6.8

$ pip --version
pip 18.1 from /Users/user/.pyenv/versions/3.6.8/envs/myenv/lib/python3.6/site-packages/pip (python 3.6)

Я портирую проект Python 2 на Python 3. У меня есть файл require.txt из моего Python2 проект - если я установлю эти зависимости в моей среде Python 3, например,

$ pip install -r my_python2_requirements.txt

И это успешно завершится, гарантирую ли я, что все мои зависимости совместимы с Python 3?

Или поставитьэто еще один способ: возможно ли установить пакет Python 2 only с Python 3 / pip (т. е. пакет, который не будет работать).

1 Ответ

0 голосов
/ 30 мая 2019

Я не совсем уверен в этом, поэтому я выполнил следующий тест.

Я выбрал случайный модуль из PyPi с пометкой «Только Python 2» и попытался установить его в обеих версиях. Для своего теста я использовал patchit .

Команда pip достигла того же URL-адреса, и вызов pip3 даже обнаружил и использовал кэшированный файл tar.gz. Поэтому может показаться, что pip не обеспечивает защиту, которую вы желаете. (Конечно, для пакетов, которые поддерживают 2 и 3, следует установить соответствующую версию)


Из официального руководства по переходу :

Используйте caniusepython3, чтобы узнать, какие из ваших зависимостей блокируют использование Python 3 (pip install caniusepython3)

Это должно помочь определить вещи и изменить requirements.txt при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...