Python module s3fs предотвращает импорт несвязанного модуля awswrangler - PullRequest
0 голосов
/ 09 апреля 2020

Этот вопрос тесно связан с этим вопросом: Ошибка импорта awswrangler: AttributeError: у модуля 'multiprocessing' нет атрибута 'connection'

Моя проблема в том, что я хочу использовать awswrangler версия 0.3.2. Он имеет s3fs в качестве зависимости. Использование последней версии s3fs на данный момент, 0.4.2, при попытке импортировать awswrangler завершается с ошибкой:

Traceback (most recent call last):
  File "src/avec/automation/TaskBaseUserPass.py", line 1, in <module>
    from awswrangler.pandas import Pandas
  File "/usr/local/lib/python3.8/site-packages/awswrangler/__init__.py", line 17, in <module>
    from awswrangler.pandas import Pandas  # noqa
  File "/usr/local/lib/python3.8/site-packages/awswrangler/pandas.py", line 45, in <module>
    class Pandas:
  File "/usr/local/lib/python3.8/site-packages/awswrangler/pandas.py", line 273, in Pandas
    def _read_csv_once_remote(send_pipe: mp.connection.Connection, session_primitives: "SessionPrimitives",
AttributeError: module 'multiprocessing' has no attribute 'connection'

Это известная ошибка, и авторы awswrangler имеют исправили это в этом запросе на извлечение: https://github.com/awslabs/aws-data-wrangler/pull/152

Однако эту проблему также можно исправить путем понижения s3fs с 0.4.2 до 0.4.0. После его установки

import awswrangler

работает без нареканий. Я не могу понять, почему это так. Глядя на изменения между 0.4.0 и 0.4.2 (https://github.com/dask/s3fs/compare/0.4.0...0.4.2), я не вижу ничего, что сделало бы mp.connection.Connection действительной ссылкой. Может кто-нибудь объяснить, почему этот почти не связанный пакет влияет на импорт awswrangler?

...