windows pyinstaller shim. the final loader will be moved into the packed directory later.

This commit is contained in:
Concedo 2025-06-10 18:12:15 +08:00
parent 0272ecf2d5
commit 64af288625
3 changed files with 20 additions and 5 deletions

View file

@ -660,15 +660,19 @@ def unpack_to_dir(destpath = ""):
print(f"KoboldCpp will be extracted to {destpath}\nThis process may take several seconds to complete.")
else:
messagebox.showinfo("Unpack Starting", f"KoboldCpp will be extracted to {destpath}\nThis process may take several seconds to complete.")
pyds_dir = os.path.join(destpath, 'pyds')
os.makedirs(pyds_dir, exist_ok=True)
for item in os.listdir(srcpath):
s = os.path.join(srcpath, item)
d = os.path.join(destpath, item)
if item.endswith('.pyd'): # Skip .pyd files
continue
if os.path.isdir(s):
shutil.copytree(s, d, False, None)
else:
if item.endswith('.pyd'): # relocate pyds files to subdirectory
d = os.path.join(pyds_dir, item)
shutil.copy2(s, d)
else:
if os.path.isdir(s):
shutil.copytree(s, d, False, None)
else:
shutil.copy2(s, d)
if cliunpack:
print(f"KoboldCpp successfully extracted to {destpath}")
else:

View file

@ -0,0 +1 @@
PyInstaller --onedir --noconfirm --clean --console --runtime-hook "./tools/kcpplauncherhook.py" --icon "./niko.ico" --version-file "./version.txt" "./koboldcpp.py" -n "koboldcpp-loader.exe"

10
tools/kcpplauncherhook.py Normal file
View file

@ -0,0 +1,10 @@
import os
import sys
# Determine the folder where the .pyd files will be located
pyd_subdir = os.path.join(sys._MEIPASS, 'pyds')
# Add the subfolder to sys.path so Python can find the .pyd modules
print("Augmenting PYD directory...")
if os.path.isdir(pyd_subdir):
sys.path.insert(0, pyd_subdir)