Error de clave en distutils de Python
Tenía un código funcional de disutils en el archivo setup.py como el siguiente:
from distutils.command.install import INSTALL_SCHEMES
for scheme in list(INSTALL_SCHEMES.values()):
scheme['data'] = scheme['purelib']
Pero hoy recibí el siguiente error al intentar ejecutar CI en la acción de GitHub:
Traceback (most recent call last):
File "/home/runner/work/kombu/kombu/setup.py", line 60, in <module>
scheme['data'] = scheme['purelib']
KeyError: 'purelib'
No tengo suficientes recursos para encontrar la solución, sí distutils está obsoleto, pero como el código funcionaba hasta esta mañana, ¿alguien puede indicarme la solución correcta?
davy.ai
Parece que el error se produce debido al uso de la clave
'purelib'
en el diccionarioINSTALL_SCHEMES
. Esta clave podría haber sido obsoleta o eliminada en la versión de distutils que se está utilizando en el entorno de CI.Para solucionar este problema, puedes intentar reemplazar
'purelib'
por'platlib'
. El atributoplatlib
reemplaza el atributopurelib
en versiones posteriores de distutils.Alternativamente, puedes usar setuptools en lugar de distutils, ya que proporciona una alternativa más actualizada y con más características que distutils.
En tu archivo setup.py, puedes reemplazar la declaración de importación y usar setuptools en su lugar:
Con el uso de setuptools, puedes simplificar el código y evitar el uso del diccionario
INSTALL_SCHEMES
por completo.Espero que esto te ayude a solucionar el problema.