更新:这似乎与pyinstaller冻结套接字包的问题有关。在python中运行以下代码很好,但是在使用pyinstaller冻结到exe之后它会产生OSError。
import socket
try:
socket.socket()
except OSError as e:
print(e)
原始文字:
我目前正在尝试构建一个使用mysql.connector查询mySQL数据库的python脚本。在python中运行代码工作正常,但是当我使用pyinstaller冻结它并运行exe时,我试图运行OSError: [WinError 10022] An invalid argument was supplied
函数时得到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问题似乎与其他软件包有关。