Как заставить питон создать ярлык на рабочий стол?

Ребят есть код, который кидает файл в папку документы, хочу сделать кнопку которая создаст ярлык на рабочий стол

from tkinter import * 
tk= Tk()
tk.title("программа")
tk.geometry("1280x900")
bl = Button(tk. text = создать ярлык, command = s1)
bl = Button(tk. text = переместить, command = s2)  
def s2():
import shutil
 shutil.copyfile('DLL_files\\usb\\PCTEST\\OCCT.exe','C:\\Users\\Public\\Documents\\OCCT.exe')

def s1():
     import os
     os.symlink("C:\\Users\\Public\\Documents\\OCCT.exe", "a\\occt.lnk")

Код ошибки OSError: [WinError 1314] Клиент не обладает требуемыми правами: 'C:\Users\Public\Documents\OCCT.exe' -> 'a\occt.lnk' или Не достаточно прав.


Ответы (2 шт):

Автор решения: Nikson Twixson

Для symlink нужны права администратора, лучше попробуй это:

import os
import winshell
from win32com.client import Dispatch


def create_shortcut(file_name: str, target: str, work_dir: str, 
                    arguments: str = ''):
    shell = Dispatch('WScript.Shell')
    shortcut = shell.CreateShortCut(file_name)
    shortcut.TargetPath = target
    shortcut.Arguments = arguments
    shortcut.WorkingDirectory = work_dir
    shortcut.save()


desktop = winshell.desktop()
path = os.path.join(desktop, "Название ярлыка.lnk")
target = r"Путь к папке файла запуска программы"
wDir = r"Путь к папке программы"
icon = r"Путь к иконке для ярлыка"

shell = Dispatch('WScript.Shell')
shortcut = shell.CreateShortCut(path)
shortcut.Targetpath = target
shortcut.WorkingDirectory = wDir
shortcut.IconLocation = icon
shortcut.save()
→ Ссылка
Автор решения: Ste3pze

Для облегчения себе жизни используйте стороной модуль pyshortcuts

Пример кода

from pyshortcuts import make_shortcut

make_shortcut('/home/user/bin/myapp.py', name='MyApp', icon='/home/user/icons/myicon.ico')

Советую ознакомиться с этим -> Тык

И подобным вопросом на StackOverflow, ответ на него дали -> Тык

И вот ещё отличная статья на эту тему -> Тык

→ Ссылка