@Andrew_Didenko

Почему возникает ошибка AttributeError: 'NoneType' object has no attribute 'write'?

Я сделал программу которая копирует и вставляет файлы в нужную папку по нажатию кнопки. Всё работало но когда я сделал 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;
}
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
1. При чем тут Java?
2. Зачем тут HTML и CSS?
3. На днях тоже при отладке питоновского скрипта получил ошибку AttributeError: 'NoneType' object has no attribute - не поверишь, у меня функция вместо нужного объекта возвращала NoneType и у него естественно не было никаких атрибутов, что при попытке обратится к ним вызывало ошибку. Помогает проверка типа или Try-Except

Загуглил, что eel - это электрон. Тогда с описания ошибки очевидно, что при запуске в пайчарме (или где там отлаживаете) скрипт и веб-файлы находятся в одной директории, а после компиляции он их не видит, что говорит о разних рабочих директориях. Или передавайте на вход исполняемому файлу рабочую директорию, или указывайте полный путь, а не "????/main.html"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы