huggingface / huggingface/diffusers
create_dynamic_module infinite recursion when setting HF_HOME using relative path
- Lingua principale
- Python
- Stelle
- 34.5k
- Fork
- 7.3k
- Merge medio
- 3g 3h
- PR unite (30g)
- 91
Descrizione
### Describe the bug
create_dynamic_module infinite recursion when setting HF_HOME using relative path
### Reproduction
```py
import os
os.environ["HF_HOME"] = ".cache/huggingface"
from diffusers.utils.dynamic_modules_utils import DIFFUSERS_DYNAMIC_MODULE_NAME, create_dynamic_module
from diffusers.utils.constants import HF_HOME
if __name__ == "__main__":
print(f"HF_HOME: {HF_HOME}")
full_submodule = DIFFUSERS_DYNAMIC_MODULE_NAME + os.path.sep + "local"
create_dynamic_module(full_submodule)
```
### Logs
```shell
HF_HOME: .cache/huggingface
Traceback (most recent call last):
File "/Users/luochaofan/projects/diffusers/_dynamic_modules.py", line 10, in
create_dynamic_module(full_submodule)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 71, in create_dynamic_module
create_dynamic_module(dynamic_module_path.parent)
[Previous line repeated 52 more times]
File "/Users/luochaofan/projects/diffusers/src/diffusers/utils/dynamic_modules_utils.py", line 70, in create_dynamic_module
if not dynamic_module_path.parent.exists():
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py", line 1414, in exists
self.stat()
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/pathlib.py", line 1222, in stat
return self._accessor.stat(self)
OSError: [Errno 63] File name too long: '.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules/.cache/huggingface/modules'
```
### System Info
diffusers 0.28.0
### Who can help?
_No response_
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start in src/diffusers/utils/dynamic_modules_utils.py at create_dynamic_module, then run the reproduction with a relative HF_HOME value. Done means the function no longer recurses while constructing the dynamic module path and the reported file-name-too-long error does not occur.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- backend
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 38/100