Этот вопрос тесно связан с этим вопросом: Ошибка импорта 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
?