添加选项-w时出现Pyinstaller错误

时间:2018-05-04 02:59:47

标签: python-2.7 pyinstaller

我编写了一个python网络应用程序,它有2个组件代理和服务器。代理连接到服务器以发送数据。我使用pyinstaller将代理脚本转换为.exe文件。如果我没有添加选项 -w ,这将有助于隐藏控制台,代码工作正常。但是当我添加选项-w时,代码无法运行。 这是我的代理商代码:

componentDidMount

当我运行代理时,它无法运行,并且以下错误显示在服务器站点上:

def SocketConnect(Server_IP,PORT):

    # Create Socket
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error, e:
        log_file.write(time.ctime() + " : Error creating socket : %s\n" %e)
        log_file.close()
        sys.exit(1)

    # Connect
    try:
        s.connect((Server_IP, PORT))
    except socket.error, e:
        log_file.write(time.ctime() + " : Connect : %s\n" %e)
        log_file.close()
        sys.exit(1)

    # Send Data
    data = pickle.dumps({'OS':[OS()], 'CPU':[CPU()], 'DISK' : [DISK()], 'MEMORY': [MEMORY()], 'NETWORK': [NETWORK()], 'FIREWALL' : FIREWALL()})
    try:
        s.send(data)
    except socket.error, e:
        log_file.write(time.ctime() + " : Error sending data: %s\n" % e)
        log_file.close()
        sys.exit(1)

    # Close Socket
    s.close()

if __name__ == "__main__" :
    config_file = open('AgentConfig.cfg', 'r')  # Open Config File - Read
    log_file = open('Log.txt', 'a') # Open Log File - Write
    Server_IP = config_file.readline().rstrip()
    PORT = int(config_file.readline().rstrip())
    FREQUENCE = config_file.readline()

    # Check valid Server_IP & PORT
    parts = Server_IP.split(".")
    if Server_IP == '' or PORT == '' :
        log_file.write(time.ctime() + " : Server IP or Connect Port is not config !\n")
        log_file.close()
        sys.exit(1)
    elif len(parts) != 4:
        log_file.write(time.ctime() + " : Server IP is not a valid IP !\n")
        log_file.close()
        sys.exit(1)
    else :
        for item in parts:
            if not 0 <= int(item) <= 255:
                log_file.write(time.ctime() + " : Server IP is not a valid IP !\n")
                log_file.close()
                sys.exit(1)
            elif PORT not in range(0,65536) :
                log_file.write(time.ctime() + " : Port must be in range 0-65535 !\n")
                log_file.close()
                sys.exit(1)
            else :
                while True :
                    log_file = open('Log.txt', 'a') # Open Log File - Write
                    log_file.write(time.ctime() + " : Connect to Server at " + Server_IP + " : Port " + str(PORT) + "\n")
                    SocketConnect(Server_IP,PORT)
                    log_file.write(time.ctime() + " : Send data Success !\n")
                    log_file.close()
                    time.sleep(int(FREQUENCE))

这是Server上的相关代码。它用于从客户端接收数据。

----------------------------------------
Exception happened during processing of request from ('192.168.10.111', 21672)
Traceback (most recent call last):
  File "C:\Python27\lib\SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 652, in __init__
    self.handle()
  File "Server.py", line 116, in handle
    temp_list = pickle.loads(self.data).values()
  File "C:\Python27\lib\pickle.py", line 1388, in loads
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 864, in load
    dispatch[key](self)
  File "C:\Python27\lib\pickle.py", line 886, in load_eof
    raise EOFError
EOFError
----------------------------------------

我不知道为什么会这样。 pyinstaller的选项 -w 如何能够对我的代码产生影响?

0 个答案:

没有答案