Я сделал программу которая копирует и вставляет файлы в нужную папку по нажатию кнопки. Всё работало но когда я сделал exe через auto-py-to-exe то при запуске программы начало выбивать AttributeError: 'NoneType' object has no attribute 'write'. С кодом вроде всё норм.
Код Python
import eel
import shutil
@eel.expose
def mod_1():
src = 'C:/Users/user/OneDrive/Рабочий стол/C-Moon Mod'
dst = 'D:/Games/Forts/data/mods/disable_weapon_sniper'
shutil.rmtree(dst)
shutil.copytree(src=src, dst=dst)
@eel.expose
def back():
src = 'C:/Users/user/OneDrive/Рабочий стол/disable_weapon_sniper'
dst = 'D:/Games/Forts/data/mods/disable_weapon_sniper'
shutil.rmtree(dst)
shutil.copytree(src=src, dst=dst)
eel.init('web')
eel.start('main.html', size=(700, 700))
Код HTML
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Forts_mod</title>
<script src="eel.js"></script>
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="main.css">
<link href="https://fonts.googleapis.com/
css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
</head>
<body>
<button id="Mod_1">C-Moon Mod</button>
<button id="back">Вернуть назад</button>
<script>
let Mod_1 = document.querySelector('#Mod_1');
Mod_1.addEventListener('click', install_mod_1);
async function install_mod_1() {
await eel.mod_1();
}
</script>
<script>
let back = document.querySelector('#back');
back.addEventListener('click', install_back);
async function install_back() {
await eel.back();
}
</script>
</body>
</html>
Код CSS
*{
font-family: "Roboto", sans-serif;
box-serif: border-box;
font-weight: 300;
}
body {
background: #FF5F6D;
background: -webkit-linear-gradient(to right, #FFC371, #FF5F6D);
background: linear-gradient(to right, #FFC371, #FF5F6D);
color: white;
padding: 50px;
}
#Mod_1 {
display: block;
border: none;
background: #03001e;
background: -webkit-linear-gradient(to right, #fdeff9, #ec38bc, #7303c0, #03001e);
background: linear-gradient(to right, #fdeff9, #ec38bc, #7303c0, #03001e);
border-radius: 10px;
padding: 20px;
color: white;
outline: none;
width: 100%;
font-size: 30px;
cursor: pointer;
}
#back {
display: block;
border: none;
background: #03001e;
background: -webkit-linear-gradient(to right, #fdeff9, #ec38bc, #7303c0, #03001e);
background: linear-gradient(to right, #fdeff9, #ec38bc, #7303c0, #03001e);
border-radius: 10px;
padding: 20px;
color: white;
outline: none;
width: 100%;
font-size: 30px;
cursor: pointer;
}