Тест Python завершается с ошибкой печати зависимости от локального пакета

#bazel

#bazel

Вопрос:

Я думал, что bazel запускает тесты в песочнице, но недавно я получил сообщение об ошибке, указывающее на локальный модуль /usr/lib/python3/dist-packages/OpenSSL/SSL.py . Это правильно? Как заставить bazel работать в изолированной среде?

 exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //master:master_impl_test
-----------------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/agent/.cache/bazel/_bazel_agent/374e3bc824f25540df2be790dbb8f41e/sandbox/linux-sandbox/1/execroot/__main__/bazel-out/k8-fastbuild/bin/master/master_impl_test.runfiles/__main__/master/master_impl_test.py", line 14, in <module>
    from master import master_impl
  File "/home/agent/.cache/bazel/_bazel_agent/374e3bc824f25540df2be790dbb8f41e/sandbox/linux-sandbox/1/execroot/__main__/bazel-out/k8-fastbuild/bin/master/master_impl_test.runfiles/__main__/master/master_impl.py", line 20, in <module>
    from azure.cosmos import cosmos_client
  File "/home/agent/.cache/bazel/_bazel_agent/374e3bc824f25540df2be790dbb8f41e/sandbox/linux-sandbox/1/execroot/__main__/bazel-out/k8-fastbuild/bin/master/master_impl_test.runfiles/py_deps/pypi__azure_cosmos/azure/cosmos/cosmos_client.py", line 25, in <module>
    import requests
  File "/home/agent/.cache/bazel/_bazel_agent/374e3bc824f25540df2be790dbb8f41e/sandbox/linux-sandbox/1/execroot/__main__/bazel-out/k8-fastbuild/bin/master/master_impl_test.runfiles/py_deps/pypi__requests/requests/__init__.py", line 95, in <module>
    from urllib3.contrib import pyopenssl
  File "/home/agent/.cache/bazel/_bazel_agent/374e3bc824f25540df2be790dbb8f41e/sandbox/linux-sandbox/1/execroot/__main__/bazel-out/k8-fastbuild/bin/master/master_impl_test.runfiles/py_deps/pypi__urllib3/urllib3/contrib/pyopenssl.py", line 46, in <module>
    import OpenSSL.SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/SSL.py", line 675, in <module>
    _lib.Cryptography_HAS_TLSEXT_HOSTNAME, "SNI not available"
AttributeError: module 'lib' has no attribute 'Cryptography_HAS_TLSEXT_HOSTNAME'

 

Ответ №1:

Сегодня CI моего проекта выдает эту ошибку. Я исправил эту проблему в своем проекте, просто обновив pyOpenSSL библиотеку до последней версии.

Старый requirements-file.txt:

запросы
pyOpenSSL==19.0.0
urllib3==1.25.3

Новое requirements-file.txt:

cffi == 1.14.4
криптография == 3.3
pycparser== 2.20
pyOpenSSL == 20.0.0
шесть == 1.15.0
urllib3== 1.25.3

Комментарии:

1. 1. Вы дважды указали pyOpenSSL разные версии? 2. Спасибо за совместное использование решения, но мой вопрос касался отсутствия песочницы Bazel.