cx_Freeze Python Исполняемая ошибка - IndexError: список индекса вне диапазона - PullRequest
0 голосов
/ 06 февраля 2019

Мой код отлично работает при выполнении из IDLE.Я использовал cx_Freeze для компиляции своего кода на Python в исполняемое приложение, и теперь оно не запустится.Я добавил свой код «setup.py» ниже.Я также предоставил результат запуска программы из командной строки.

from cx_Freeze import setup, Executable
import os


os.environ['TCL_LIBRARY'] = r'C:\Program Files (x86)\Microsoft Visual 
Studio\Shared\Python36_64\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files (x86)\Microsoft Visual 
Studio\Shared\Python36_64\tcl\tk8.6'

build_exe_options = {"packages": ["numpy"]}

setup(name= 'Current-Translator',
      version = '1.0',
      description = 'Convert and plot electrical current data from data logger.',
      options = {"build_exe": build_exe_options},
      executables = [Executable('Current-Translator.py')])

Вывод командной строки

Traceback (most recent call last):


File "C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "Current-Translator.py", line 6, in <module>
  File "C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\lib\site-packages\timedelta\__init__.py", line 9, in <module>
    @public.add
  File "C:\Users\jchoujaa\AppData\Local\Programs\Python\Python37\lib\site-packages\public\__init__.py", line 65, in add
    return _add(_caller_modules()[1], objects)
IndexError: list index out of range

1 Ответ

0 голосов
/ 07 февраля 2019
  1. Попробуйте использовать следующие параметры build_exe в вашем скрипте установки:

    build_exe_options = {"packages": ["numpy", "public", "timedelta"]}
    
  2. Похоже, вы используете cx_Freeze с python 3.7видимо без дальнейших проблем.cx_Freeze пока не поддерживает Python 3.7, в нем есть ошибка (только для некоторых конфигураций системы?).Исправление существует, но еще не выпущено, однако вы можете применить его вручную, см. В чем может быть причина фатальной ошибки Python: initfsencoding: невозможно загрузить кодек файловой системы? и Сбой Cx_freezePython3.7.0 .Или вы можете вернуться к Python 3.6, если это вариант для вас.

...