Невозможно сделать исполняемый файл, который работает с ошибкой из polyfit - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь сделать исполняемый файл из скрипта Python. Для этого я использую Cx_Freeze. Мой код очень прост. Похоже, что ошибка возникает из-за того, что компьютер интерпретирует строку polyfit. Это первый раз, когда я пытался создать исполняемый файл, и я не могу понять, что мне следует делать, чтобы решить мою проблему. Не могли бы вы сказать мне, пожалуйста?

from numpy import polyfit
from time import sleep
import sys


if __name__ == "__main__":
    if(len(sys.argv)==1):
        print("There is no argument. Please insert arguments")
        sleep(10)
        sys.exit(0)
    x = list(map(int, sys.argv[1:int((len(sys.argv)-1)/2+1)]))
    y = list(map(int, sys.argv[int((len(sys.argv)-1)/2+1):])) 
    print("Computing : [X datas : " + str(x) + "; Y datas : " + str(y) +"]")
    try: 
        param = polyfit(x, y, 2) ##1 is the degree number 
    except TypeError:
        print("ERROR : X and Y are expected to have same length")
        sleep(10)
        sys.exit(0)
    print("Equation : " + "{0:.6}".format(param[0]) + "x² + " + "{0:.6}".format(param[1]) + "x + " + "{0:.6}".format(param[2]))

My Setup py file:

import os
from cx_Freeze import setup, Executable

PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
additional_mods = ['numpy.core._methods', 'numpy.lib.format']
additional_files = [(os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
                     os.path.join('lib', 'tcl86t.dll')),
                    (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
                     os.path.join('lib', 'tk86t.dll'))
                    ]

setup(
      name = "XXX_Polyfit_Computing",
      version = "0.1",
      description = "Compute coefficients of a 2nd order equations",
      options = {'build_exe': {'includes': additional_mods, 
                               'include_files' : additional_files}},
      executables = [Executable("polyfit.py")]
)

Вот ошибка, когда я передал правильное количество аргументов: enter image description here

Большое спасибо!

...