mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Fix: upgrade fails if existing venv was created with symlinks (#2489)
if reinstalling over an existing installation where the .venv was created with symlinks to system python instead of copies of the python executable, the installer would raise a `SameFileError`, because it would attempt to copy Python over itself. This fixes the issue. Copying the executable is still preferred for new environments, because this guarantees the stable Python version.
This commit is contained in:
commit
76b0bdb6f9
@ -129,7 +129,14 @@ class Installer:
|
||||
else:
|
||||
venv_dir = self.dest / ".venv"
|
||||
|
||||
venv.create(venv_dir, with_pip=True)
|
||||
# Prefer to copy python executables
|
||||
# so that updates to system python don't break InvokeAI
|
||||
try:
|
||||
venv.create(venv_dir, with_pip=True)
|
||||
# If installing over an existing environment previously created with symlinks,
|
||||
# the executables will fail to copy. Keep symlinks in that case
|
||||
except shutil.SameFileError:
|
||||
venv.create(venv_dir, with_pip=True, symlinks=True)
|
||||
|
||||
# upgrade pip in Python 3.9 environments
|
||||
if int(platform.python_version_tuple()[1]) == 9:
|
||||
|
Loading…
Reference in New Issue
Block a user