использовать namespace и cgroups или seccomp для реализации онлайн судьи?

Что происходит здесь, так это то, что продаваемые версии запроса / urllib3 сталкиваются при импорте в двух разных местах (один и тот же код, но разные имена). Если у вас есть сетевая ошибка, она не будет пытаться получить колесо, но с ошибкой выше. См. здесь для более глубокого погружения в эту ошибку.

Для решения с системой pip см. выше .

Если вы есть эта проблема в virtualenv, созданная с помощью python -m venv (которая все еще копирует колеса с /usr/share/python-wheels, даже если у вас есть пипс отдельно), самый простой способ «исправить» выглядит следующим образом:

  1. создать virtualenv: /usr/bin/python3.6 -m venv ...
  2. установить requests в среду (это может вызвать ошибку выше): /bin/pip install requests
  3. удалить скопированные версии requests, который будет использоваться pip: rm /share/python-wheels/{requests,chardet,urllib3}-*.whl

Теперь в /bin/pip используется установленная версия requests, которая имеет urllib3 vendored.

0
задан si9ma 5 April 2019 в 14:07
поделиться