TypeError: нехешируемый тип: 'Path' (Импортирование любого пакета)

У меня тут странная ситуация. Я создал мини проект Django, и в файле urls.py, если я пытаюсь выполнить любое "from package import X", это приводит к исключению: TypeError: unhashable type: 'Path'

При отсутствии импорта в этом файле, все прекрасно работает, сервер запускается и т.д.

File "/app/app/urls.py", line 2, in <module>
2023-01-21T04:41:15.890469838Z     from rest_framework.response import Response
2023-01-21T04:41:15.890486088Z   File "/usr/local/lib/python3.8/site-packages/rest_framework/response.py", line 11, in <module>
2023-01-21T04:41:15.890490338Z     from rest_framework.serializers import Serializer
2023-01-21T04:41:15.890492504Z   File "/usr/local/lib/python3.8/site-packages/rest_framework/serializers.py", line 27, in <module>
2023-01-21T04:41:15.890516629Z     from rest_framework.compat import postgres_fields
2023-01-21T04:41:15.890534421Z   File "/usr/local/lib/python3.8/site-packages/rest_framework/compat.py", line 33, in <module>
2023-01-21T04:41:15.890571546Z     import coreapi
2023-01-21T04:41:15.890591004Z   File "/usr/local/lib/python3.8/site-packages/coreapi/__init__.py", line 2, in <module>
2023-01-21T04:41:15.890598088Z     from coreapi import auth, codecs, exceptions, transports, utils
2023-01-21T04:41:15.890600588Z   File "/usr/local/lib/python3.8/site-packages/coreapi/auth.py", line 1, in <module>
2023-01-21T04:41:15.890602963Z     from coreapi.utils import domain_matches
2023-01-21T04:41:15.890605254Z   File "/usr/local/lib/python3.8/site-packages/coreapi/utils.py", line 5, in <module>
2023-01-21T04:41:15.890724213Z     import pkg_resources
2023-01-21T04:41:15.890736088Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3249, in <module>
2023-01-21T04:41:15.891071296Z     def _initialize_master_working_set():
2023-01-21T04:41:15.891081671Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3223, in _call_aside
2023-01-21T04:41:15.891363838Z     f(*args, **kwargs)
2023-01-21T04:41:15.891371088Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3261, in _initialize_master_working_set
2023-01-21T04:41:15.891722921Z     working_set = WorkingSet._build_master()
2023-01-21T04:41:15.891733421Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 608, in _build_master
2023-01-21T04:41:15.891780379Z     ws = cls()
2023-01-21T04:41:15.891790796Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 601, in __init__
2023-01-21T04:41:15.891883463Z     self.add_entry(entry)
2023-01-21T04:41:15.891889546Z   File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 655, in add_entry
2023-01-21T04:41:15.892080713Z     self.entry_keys.setdefault(entry, [])
2023-01-21T04:41:15.892097713Z TypeError: unhashable type: 'Path'

Это докеризация.

FROM python:3.8-slim

ENV PYTHONUNBUFFERED 1
WORKDIR /app

COPY ./services/shared/requirements.txt /requirements/base.txt
COPY ./services/auth/requirements.txt /requirements/requirements.txt

RUN apt-get update  \
    && apt-get install -y libjpeg62-turbo-dev zlib1g-dev ca-certificates gcc  \
                          postgresql-client sed xmlsec1 pax-utils build-essential  \
                          python-setuptools libpq-dev  \
    && apt-get clean

RUN pip install --upgrade pip

RUN pip install --no-cache-dir -r /requirements/requirements.txt \
    && find /usr/local \
    \( -type d -a -name test -o -name tests \) \
    -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
    -exec rm -rf '{}' +

# Copy requirements and install local one
RUN rm -rf /requirements

Я никогда не сталкивался с этим раньше, хотя это первый раз, когда я экспериментирую с совместным использованием кода Django через небольшие независимые контейнерные сервисы.

Любая помощь была бы очень признательна. Я вижу, что что-то вокруг coreapi умирает, и независимо от того, что я импортирую, coreapi кажется там последней вещью, пытающейся импортировать pkg_resources - но я не могу понять почему?

Вернуться на верх