Python 2.7: EXE-файл, созданный из pyinstaller, не работает - PullRequest
0 голосов
/ 26 апреля 2019

Я следовал этой статье , чтобы создать мой run.exe файл с помощью pyinstaller.Я получил свой исполняемый файл в папке dist, как и ожидалось, без каких-либо ошибок.Но когда я дважды щелкаю по exe-файлу, ничего не происходит.Когда я запускаю exe-файл из командной строки, я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "run.py", line 2, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\PySimpleGUI27\__init__.py", line 2, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 395, in load_module
    exec(bytecode, module.__dict__)
  File "site-packages\PySimpleGUI27\PySimpleGUI27.py", line 14, in <module>
  File "site-packages\future\standard_library\__init__.py", line 459, in install_aliases
ImportError: No module named UserList
[16016] Failed to execute script run

Я не понимаю эту ошибку.У меня нет имени модуля Userlist в моем скрипте.Ниже приведен мой сценарий:

import PySimpleGUI27 as sg
import parse

layout = [               
    [sg.Text('A2L File', size=(15, 1), auto_size_text=False, justification='right'),      
     sg.InputText('',key='_a2l_'), sg.FileBrowse(file_types=(("A2L File", "*.a2l"),))],
    [sg.Text('Signals Lexicon', size=(15, 1), auto_size_text=False, justification='right'),      
     sg.InputText('',key='_sigLex_'), sg.FileBrowse(file_types=(("Excel File", "*.xlsx"),))],
    [sg.Text('Parameters Lexicon', size=(15, 1), auto_size_text=False, justification='right'),      
     sg.InputText('',key='_parLex_'), sg.FileBrowse(file_types=(("Excel File", "*.xlsx"),))],
    [sg.Text('Module Name', size=(15, 1), auto_size_text=False, justification='right'),      
     sg.InputText('X',key='_module_'), sg.FolderBrowse()],           
    [sg.Submit(), sg.Cancel()],
    [sg.Output(size=(60, 20))]  
]
window = sg.Window('A2L Parser', default_element_size=(40, 1)).Layout(layout)

values_dict={}
while True:
    button, values_dict = window.Read()
    if button=="Cancel" or button is None:
        break
    elif button=='Submit' and (not any(value == '' for value in values_dict.values())):   
        parse.parser(values_dict['_a2l_'], values_dict['_sigLex_'], values_dict['_parLex_'],window)

    else:
        sg.Popup("Please select files")  

window.Close()

Этот сценарий работает, когда я запускаю его из визуального кода, поэтому в сценарии нет ошибок.В этом скрипте я импортирую свой собственный скрипт parse .Может кто-нибудь объяснить, в чем проблема с exe-файлом?

Обновление : Я обнаружил, что мне придется добавить эти недостающие модули в мой скрипт.Но после добавления каждого модуля я получаю сообщение об ошибке другого отсутствующего модуля.Есть ли способ найти все недостающие модули за один раз?

...