Django项目导入包时报TypeError: unhashable type: 'Path'求助
TypeError: unhashable type: 'Path' when importing any package in Django urls.py
编辑补充:已将问题范围缩小至Django REST Framework,但暂未明确根因,即将开始深度包调试。
搭建的小型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'
复现步骤
- 在services/shared/目录下创建
.env文件,内容如下:
POSTGRES_PASSWORD=ai POSTGRES_USER=ai POSTGRES_DBNAME=ai POSTGRES_HOST=postgres-ai POSTGRES_TEST=test_ai SECRET_KEY=%&jxaf6ijs36d82@r+^hq%=d7w8*2)r9afv*z@5y=(vt$h38m5 REGISTRATION_SALT=sx<)XYH.G0\"3GhqGLfY7~3Nt'63\"Yp DJANGO_DEBUG=True DEBUG_DB=True ALLOWED_HOSTS=* CORS_ORIGIN_WHITELIST=http://0.0.0.0 CORS_ALLOWED_ORIGINS=http://0.0.0.0 WEB_SERVER=app.myapp.co WEB_APP_URL=app.myapp.co EMAIL_URL= AXES_BEHIND_REVERSE_PROXY=off SITE_ID=3 ACCESS_TOKEN_EXPIRE_SECONDS=600 SUPPORT_EMAIL= ACCOUNT_ACTIVATION_DAYS=2 SENTRY_ID= SENTRY_ENDPOINT= SENTRY_ENVIRONMENT=SomeEnv MAX_IMAGE_UPLOAD_SIZE_BYTES=10000000 # Application environment settings APP_ENV=local APP_USE_AWS_S3_STATIC=False APP_USE_AWS_S3_MEDIA=False SSL_CERT_CHAIN=ssl\/local.crt SSL_CERT_KEY=ssl\/local.key SSL_CERT_DHPARAM=ssl\/dhparams.local.pem
- 执行
make up启动项目
这是首次尝试跨独立容器服务共享Django代码,此前从未遇到该问题。目前观察到coreapi相关环节出现错误,无论导入什么包,最终都会触发pkg_resources导入失败,暂未明确原因,恳请各位提供帮助。
内容的提问来源于stack exchange,提问作者Trent
相关产品推荐
相关产品推荐

