Как исправить ошибку, связанную с пакетом NUMPY, после упаковки файла python с помощью pyinstaller - PullRequest
0 голосов
/ 30 декабря 2018

Я написал код для преобразования xlsx в csv, а затем записал содержимое в файл CSD как часть действий CICS.

Когда я выполняю код в pycharm, он работает нормально.Я упаковал свой файл python, используя опцию --oneFile pyinstaller, сообщив, что я получаю сообщение об ошибке при выполнении файла .exe.Ошибка:

ImportError: отсутствуют обязательные зависимости ['numpy']

Я попытался запустить тот же код в pycharm, он работает нормально.Но мне нужно отправить это как exe одному из наших клиентов

import csv
import sys
import os
import pandas as pd




def xls2csv (xls_filename, csv_filename):
    global  excelFile
    df = pd.read_excel(xls_filename)  # sheetname is optional
    df.to_csv(csv_filename, index=False)
    excelFile = 1


def detectDelimiter(csvFile):
    with open(csvFile, 'r') as myCsvfile:
        header=myCsvfile.readline()
        if header.find(";")!=-1:
            return ";"
        if header.find(",")!=-1:
            return ","
    #default delimiter (MS Office export)
    return ";"


def ReadFile(csvFileName):
    global mydict
    with open(csvFileName, mode='r') as infile:
        reader = csv.reader(infile, delimiter=detectDelimiter(csvFileName))
        mydict = {'DEFINE TRANSACTION(' + rows[0] + ') ' : 'PROGRAM(' + rows[1] + ')' for rows in reader}
    #print(mydict)

def usage():
    print(" Error in execution \n usage : cstvToCSD <PathOfinputCSV/XLS/XLSXFile>  <PathOfOutputCSDFile>")


def WriteToCSDFile():
    progress = "Writing to CSD ...."
    with open(outFile, 'w') as f:
        print(progress)
        f.writelines('{}{}\n'.format(k, v) for k, v in mydict.items())
        print("Finished writing CSD file ")


if __name__ == "__main__":
 arguments = sys.argv[1:]
 count = len(arguments)
 excelFile=0
 if count == 2:
    fileName = arguments.__getitem__(0)
    outFile =  arguments.__getitem__(1)
    if os.path.isfile(fileName) :
        if  str(fileName).endswith("xlsx") or str(fileName).endswith("xls"):
            #print(" XLS FILE PATH  = ",fileName)
            csvFileName = str(fileName).replace(".xlsx",".csv").replace(".xls",".csv")
            if os.path.exists(csvFileName):
                os.remove(csvFileName)
            if os.path.exists(outFile):
                os.remove(outFile)
            #print(" CSV FILE PATH  = ", csvFileName)
            xls2csv(fileName,csvFileName)
        else:
            csvFileName = fileName

        ReadFile(csvFileName)
        WriteToCSDFile()
        if excelFile == 1:
            #print("Ï AM HERE" )
            os.remove(csvFileName)
    else:
        print("CSV/XLS/XLSX File doesnot exist or is not a file ")
        usage()
 else:
     usage()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...