Estoy administrando dependencias en mi proyecto de Python a través de Poetry.
Ahora quiero ejecutar este proyecto en una máquina diferente a mi máquina de desarrollo. Para instalar dependencias, simplemente ejecuto este comando desde el directorio raíz:
$ poetry installpero luego lanza los siguientes errores:
Updating dependencies Resolving dependencies... Writing lock file Package operations: 70 installs, 0 updates, 0 removals • Installing colorama (0.4.4) • Installing tzdata (2021.1) ValueError File \C:\Users\tteguayco\AppData\Local\pypoetry\Cache\artifacts\9e\b3\11\7d87ac44fdb2d557301f1f4086a37c080d1482a98751abe7cdbabbad26\colorama-0.4.4-py2.py3-none-any.whl does not exist at ~\AppData\Local\Programs\Python\Python39\lib\site-packages\poetry\core\packages\file_dependency.py:40 in __init__ 36│ except FileNotFoundError: 37│ raise ValueError("Directory {} does not exist".format(self._path)) 38│ 39│ if not self._full_path.exists(): → 40│ raise ValueError("File {} does not exist".format(self._path)) 41│ 42│ if self._full_path.is_dir(): 43│ raise ValueError("{} is a directory, expected a file".format(self._path)) 44│ ValueError File \C:\Users\tteguayco\AppData\Local\pypoetry\Cache\artifacts\45\2d\cb\6443e36999e7ab3926d5385dfac9ee9ea2a62f8111ff71abb6aff70674\tzdata-2021.1-py2.py3-none-any.whl does not exist at ~\AppData\Local\Programs\Python\Python39\lib\site-packages\poetry\core\packages\file_dependency.py:40 in __init__ 36│ except FileNotFoundError: 37│ raise ValueError("Directory {} does not exist".format(self._path)) 38│ 39│ if not self._full_path.exists(): → 40│ raise ValueError("File {} does not exist".format(self._path)) 41│ 42│ if self._full_path.is_dir(): 43│ raise ValueError("{} is a directory, expected a file".format(self._path)) 44│Sería bueno saber qué son estos *.whl y cómo los utiliza Poetry.
Específicamente, descubrí que eliminar la carpeta AppData\Local\pypoetry\Cache\artifacts (estoy en Windows 10) funcionó para mí. virtualenvs para otros proyectos puede estar en AppData\Local\pypoetry\Cache\virtualenvs , por lo que es posible que no desee eliminar la carpeta de caché raíz en AppData\Local\pypoetry\Cache en su totalidad.
Según https://github.com/python-poetry/poetry/issues/4163 , parece ser un problema aún pendiente de resolver.
Como solución alternativa, volcando las dependencias en un archivo requirements.txt a través de la poetry :
$ poetry export -f requirements.txt --output requirements.txt --without-hashes y luego instalarlos a través de pip , funcionó para mí:
$ pip install -r requirements.txtParece estar relacionado con el caché de poesía. Para mí, funciona según lo previsto si voy a User\user\AppData\Local\pypoetry y elimino la carpeta de caché.