Почему перемещение исполняемого файла останавливает его? - PullRequest
0 голосов
/ 19 апреля 2019

По сути, я преобразую этот файл Python в исполняемый файл с PyInstaller.Но перемещение пути exe изнутри, заставляет его перестать работать.Повторный запуск исполняемого файла с этого перемещенного пути не вызывает никаких ошибок и работает просто отлично.

Зацикливание основной функции с использованием, пока True поддерживает ее работу, но не может установить какое-либо соединение с сервером.(сделано в классе Agent)

Это часть файла python, которая конвертируется в exe

def main():

    try:
        # try to relocate file (always works)
        root_path = os.environ["HOMEPATH"]
        file_name = os.path.basename(sys.executable)

        current_path = os.path.realpath(sys.executable)[2:]

        path_needed = os.path.join(root_path, file_name)

        if current_path != path_needed:
            print(str(current_path) + " != " + str(path_needed))
            os.rename(current_path, path_needed)

    except Exception as e:
        print("main exception with exception " + str(e))


    agent = Agent()
    agent.run()


if __name__ == "__main__":
    # while True:
    main()

1 Ответ

0 голосов
/ 19 апреля 2019

Решил, снова вызвав exe-файл (и просто разрешив текущему закрыться)

if current_path != path_needed:
        print(str(current_path) + " != " + str(path_needed))
        os.rename(current_path, path_needed)
        try:
            os.startfile("C:\\" + path_needed)
        except Exception as exception:
            print("main execute exception with exception " + str(exception))                
        return
...