I'm trying to make my scripts executable so I can send it to my colleague. I'm using PyInstaller. pyinstaller --onefile main.py Which creates two folders. When I open dist/main.exe, something is wrong but I don't know what because it doesn't create a log file. I can't figure out why. When I run main.py, the log file is created immediately. Could you check it out? # coding=utf-8 from __future__ import print_function import csv import os import time import logging import sys import traceback from spider import is_connected from database import Database filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'log.log') logging.basicConfig(filename=filename, level=logging.INFO, filemode='w') logger = logging.getLogger(__name__) def printProgressBar(iteration, total, prefix='', suffix='', decimals=1, length=100, fill=u'█'): """ Call in a loop to create terminal progress bar @params: iteration - Required : current iteration (Int) total - Required : total iterations (Int) prefix - Optional : prefix string (Str) suffix - Optional : suffix string (Str) decimals - Optional : positive number of decimals in percent complete (Int) length - Optional : character length of bar (Int) fill - Optional : bar fill character (Str) """ percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total))) filledLength = int(length * iteration // total) bar = fill * filledLength + '-' * (length - filledLength) print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix)) # Print New Line on Complete if iteration == total: print() if __name__ == '__main__': print(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'log.log')) logger.info('Download started...') connected = is_connected() logger.info('Checking connection... {}'.format(connected)) if not connected: logger.info('Program closed - no connection...') sys.exit() db = Database() if not os.path.isdir("output"): print('Nenasla sa zlozka "output"...') logger.info('No output folder') input() sys.exit() if not os.path.isdir("csv"): print('Nenasla sa zlozka "csv"...') logger.info('No csv folder') input() sys.exit() print('Spracovavanie suboru "input.csv"...') filename = 'output_{}.csv'.format(time.strftime("%Y%m%d-%H%M%S")) try: with open('csv/input.csv') as f: with open('output/'+filename, 'wb') as o: reader = csv.DictReader(f) reader.fieldnames.append('VAT added') writer = csv.DictWriter(o, fieldnames=reader.fieldnames) writer.writeheader() r_list = list(reader) rows = len(r_list) for n, line in enumerate(r_list): if n>0: printProgressBar(n,rows) code = line['Lot number'].strip() vat = db.get_or_set_vat(code) logger.info('outer vat') logger.info(vat) logger.info('YES' if vat else 'NO' if vat == False else 'UNKNOWN') line['VAT added'] = 'YES' if vat else 'NO' if vat == False else 'UNKNOWN' writer.writerow(line) except IOError as e: print(e) logger.info('IOError') logger.info(traceback.format_exc()) print('Chyba: zrejme nenaslo subor "input.csv" - skontrolujte nazov suboru v zlozke csv') input() sys.exit() print() print('Koniec stahovania - {}'.format(filename)) input() Continue reading...