diff options
author | Ftps <63702646+Tps-F@users.noreply.github.com> | 2023-03-16 03:35:48 +0000 |
---|---|---|
committer | Ftps <63702646+Tps-F@users.noreply.github.com> | 2023-03-16 03:35:48 +0000 |
commit | 147d2922ff573f757b8940446b925c2e658e40ac (patch) | |
tree | b11b5d87299e24802298fe627e5fcf801108e489 | |
parent | 79ed567b12c73231b712eb97106a565330968e34 (diff) | |
download | stable-diffusion-webui-gfx803-147d2922ff573f757b8940446b925c2e658e40ac.tar.gz stable-diffusion-webui-gfx803-147d2922ff573f757b8940446b925c2e658e40ac.tar.bz2 stable-diffusion-webui-gfx803-147d2922ff573f757b8940446b925c2e658e40ac.zip |
Cross device link
-rw-r--r-- | .fleet/settings.json | 0 | ||||
-rw-r--r-- | modules/ui_extensions.py | 12 |
2 files changed, 11 insertions, 1 deletions
diff --git a/.fleet/settings.json b/.fleet/settings.json new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/.fleet/settings.json diff --git a/modules/ui_extensions.py b/modules/ui_extensions.py index 3d9c4261..d9def96e 100644 --- a/modules/ui_extensions.py +++ b/modules/ui_extensions.py @@ -9,6 +9,7 @@ import git import gradio as gr
import html
import shutil
+import errno
from modules import extensions, shared, paths
from modules.call_queue import wrap_gradio_gpu_call
@@ -143,7 +144,16 @@ def install_extension_from_url(dirname, url): repo.remote().fetch()
for submodule in repo.submodules:
submodule.update()
- os.rename(tmpdir, target_dir)
+ try:
+ os.rename(tmpdir, target_dir)
+ except OSError as err:
+ if err.errno == errno.EXDEV:
+ # Cross device link, typical in docker or when tmp/ and extensions/ are on different file systems
+ # Since we can't use a rename, do the slower but more versitile shutil.move()
+ shutil.move(tmpdir, target_dir)
+ else:
+ # Something else, not enough free space, permissions, etc. rethrow it so that it gets handled.
+ raise err
import launch
launch.run_extension_installer(target_dir)
|