VoucherVision / create_desktop_shortcut.py
phyloforfun's picture
Add application file
87c3140
raw history blame
No virus
2.81 kB
import os, sys
import win32com.client
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageEnhance
def create_shortcut():
# Request user's confirmation
confirmation = input("Do you want to create a shortcut for the VoucherVision? (y/n): ")
if confirmation.lower() != "y":
print("Okay, no shortcut will be created.")
return
# Get the script path
script_path = os.path.abspath(__file__)
# Get the directory of the script
script_dir = os.path.dirname(script_path)
# Path to the icon file
icon_path = os.path.join(script_dir, 'img', 'icon.jpg')
img = Image.open(icon_path)
enhancer = ImageEnhance.Color(img)
img_enhanced = enhancer.enhance(1.5)
img_enhanced.save(os.path.join(script_dir, 'img', 'icon.ico'), format='ICO', sizes=[(256,256)])
icon_path_ico = os.path.join(script_dir, 'img', 'icon.ico')
# Construct the path to the static folder
static_dir = os.path.join(script_dir, "static")
# Ask for the name of the shortcut
shortcut_name = "Voucher Vision"
root = tk.Tk()
root.withdraw() # Hide the main window
root.update() # Ensures that the dialog appears on top
folder_path = filedialog.askdirectory(title="Choose location to save the shortcut")
print(f"Shortcut will be saved to {folder_path}")
venv_path = filedialog.askdirectory(title="Choose the location of your Python virtual environment")
print(f"Using virtual environment located at {venv_path}")
# Path to the activate script in the venv
activate_path = os.path.join(venv_path, "Scripts")
shortcut_path = os.path.join(folder_path, f'{shortcut_name}.lnk')
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(shortcut_path)
shortcut.Targetpath = "%windir%\System32\cmd.exe"
# The command activates the venv, navigates to the script's directory, then runs the script
# shortcut.Arguments = f'/K "{activate_path} & cd /D {os.path.dirname(script_path)} & streamlit run VoucherVisionEditor.py"'
# shortcut.Arguments = f'/K "{activate_path} & cd /D {static_dir} & start cmd /c python -m http.server & cd /D {script_dir} & streamlit run VoucherVisionEditor.py"'
streamlit_exe = os.path.join(venv_path, "Scripts","streamlit")
print(script_dir)
print(streamlit_exe)
activate_path = os.path.join(script_dir,"venv_VV","Scripts")
print(activate_path)
shortcut.Arguments = f'/K cd /D ""{activate_path}"" && activate && cd /D ""{script_dir}"" && python run_VoucherVision.py'
# Set the icon of the shortcut
shortcut.IconLocation = icon_path_ico
shortcut.save()
print(f"Shortcut created with the name '{shortcut_name}' in the chosen directory.")
if __name__ == "__main__":
create_shortcut()