Я пытаюсь сделать исполняемый файл из скрипта 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")]
)
Вот ошибка, когда я передал правильное количество аргументов:
Большое спасибо!