Python 使用pyinstaller冻结代码后出现WinError 10002错误

Python 使用pyinstaller冻结代码后出现WinError 10002错误,python,python-3.x,pyinstaller,Python,Python 3.x,Pyinstaller,更新:这似乎与pyinstaller冻结套接字包的问题有关。在python中运行以下代码是可以的,但在使用pyinstaller冻结到exe后,会出现操作错误 import socket try: socket.socket() except OSError as e: print(e) 原文: 我目前正在尝试构建一个python脚本,该脚本使用mySQL.connector查询mySQL数据库。在python中运行代码可以正常工作,但是当我使用pyinstaller冻结代码

更新:这似乎与pyinstaller冻结套接字包的问题有关。在python中运行以下代码是可以的,但在使用pyinstaller冻结到exe后,会出现操作错误

import socket

try:
    socket.socket()
except OSError as e:
    print(e)
原文

我目前正在尝试构建一个python脚本,该脚本使用mySQL.connector查询mySQL数据库。在python中运行代码可以正常工作,但是当我使用pyinstaller冻结代码并运行exe时,我得到一个
OSError:[WinError 10022]当它尝试运行
mysql.connector.connect
函数时,提供了一个无效的参数

我的代码如下:

import mysql.connector

def test(user, password, ip, query):
    con = mysql.connector.connect(user=user,
                              password=password,
                              host=ip)

    cursor = con.cursor()
    cursor.execute(query)
    rows = cursor.fetchall()

    cursor.close()
    con.close()

    return rows
错误全文如下:

Traceback (most recent call last):
    File "site-packages\mysql\connector\network.py", line 507, in open_connection
    File "socket.py", line 134 in __init__
OSError: [WinError 10022] An invalid argument was supplied

环顾四周,我能找到的唯一与pyinstaller相关的mysql.connector问题是由于导入错误,而WinError 10022问题似乎与其他软件包有关。

您能用这些凭据连接到mysql服务器吗?可能是套接字处于繁忙状态,我可以在python中直接连接,只有在尝试exe时才会发生错误。我刚刚更新了文本,因为我发现根本原因似乎是
socket
mysql.connector
正在使用。在pyinstaller冻结的exe中创建新套接字类时,它可能总是抛出该错误。可能pyinstaller没有识别出必须包含套接字库。如何构建冻结的exe文件?是否有明确包含包/模块的选项?您是否能够使用这些凭据连接到mysql服务器?可能是套接字处于繁忙状态,我可以在python中直接连接,只有在尝试exe时才会发生错误。我刚刚更新了文本,因为我发现根本原因似乎是
socket
mysql.connector
正在使用。在pyinstaller冻结的exe中创建新套接字类时,它可能总是抛出该错误。可能pyinstaller没有识别出必须包含套接字库。如何构建冻结的exe文件?是否有明确包含包/模块的选项?