Search code examples
pythonexepyinstallerjson-rpc

Why does my .exe generated by PyInstaller not start?


I generated an executable file with PyInstaller, but when I want to launch the application the console window shows me, that it couldn't find a directory or file. I checked the location and the folder "_MEI55762" is indeed not present.

Error Message

Did anyone have this issue before?

Below the part of the code, where I think the error should be located. I think it has something to do with the imports of the "jsonrpclcient" package. I didn´t post the full code with the all the GUI lines, since I think it will not help. If I am wrong please let me know.

import os
import sys
import requests
import json
import pyvisa
import time
from datetime import datetime
import threading
import signal
from jsonrpcclient import *
from jsonrpcclient.clients.http_client import HTTPClient
from jsonrpcclient.requests import Request
from tkinter import *
from tkinter import ttk
import traceback

print("-----------------------------------------")
print("              Q-Center V0.1              ")
print("-----------------------------------------")

port = ":8080"
rm = pyvisa.ResourceManager()

def listArticles():
    for attempt in range (3): #Will be executed 3 times in case an error occurs
        print('List Articles:')
        try: #First try this
            client = HTTPClient("http://" + ipEntry.get() + port)
            response = client.send(Request("list_articles"), timeout=5)
            print(response.data.result)
            print('Success!')
        except: #If an error occurs, call the print function and let the user know
            print('An error occured!')
            rebootPeacock()
            
        else: #If no error occurs, stop trying
            break

        
    else: #If no attempt was successful, print that all 3 attempts failed. ONLY EXCUTED WHEN THE LOOP DOES'T BREAK.
        print('All 3 attempts failed!')

    answer = response.data.result
    pkReply.insert(END, answer)
    pkReply.insert(END, '\n\n')


Solution

  • The solution is to tell PyInstaller to add the "response-schema.json" file which is located at "C:\Users\pfra\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\jsonrpcclient".

    So the command should look like:

    pyinstaller --add-file "C:\Users\pfra\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\jsonrpcclient.response.schema.json;."