Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Web服务器上通过python使用Microsoft SQL_Python_Sql Server_Pylons_Paster_Pymssql - Fatal编程技术网

在Web服务器上通过python使用Microsoft SQL

在Web服务器上通过python使用Microsoft SQL,python,sql-server,pylons,paster,pymssql,Python,Sql Server,Pylons,Paster,Pymssql,我试图从一个挂架(基于粘贴器)Web服务器运行一些对数据库的查询,每次我尝试导入我正在使用的pymssql库时(顺便说一句),我都会遇到以下错误: tds_init_winsock: WSAEnumProtocols failed with 10055(WSAENOBUFS: No buffer space available.) 关于进口。我还尝试过使用sqlalchemy,当我尝试创建sqlalchemy引擎时,得到了完全相同的错误。我能做些什么来让它工作吗。我没有连接到Web服务器或py

我试图从一个挂架(基于粘贴器)Web服务器运行一些对数据库的查询,每次我尝试导入我正在使用的pymssql库时(顺便说一句),我都会遇到以下错误:

tds_init_winsock: WSAEnumProtocols failed with 10055(WSAENOBUFS: No buffer space
available.)
关于进口。我还尝试过使用sqlalchemy,当我尝试创建sqlalchemy引擎时,得到了完全相同的错误。我能做些什么来让它工作吗。我没有连接到Web服务器或pymssql库,所以其他的都可以

环境资料:

我用的机器是一台32比特的win7台式机 服务器在PythonVirtualEnvironment中运行,但是pymssql库在虚拟环境中完美地工作,而不是在服务器上

更新:

更多的背景信息(和解释): 我不认为这是MSSQL问题,甚至在某种程度上也不是python问题。有两个原因:A)在出现此问题时,我和其他人仍然可以连接到MSSQL数据库;B)如果不是从服务器导入pymssql,则pymssql工作得非常好。不过,我确实认为这可能与python和_mssql处理套接字的方式和/或服务器处理套接字的方式有关。。。希望这能多帮点忙

提前感谢

错误代码被翻译成“无可用缓冲区空间”,实际上是指(引用我刚才提到的MSDN页面):

无法对套接字执行操作 因为系统缺少 足够的缓冲区空间或因为 队伍排满了

实际上(如所解释的)通常指(引用我刚才提到的文章):

在大多数情况下,问题发生在 打开的套接字总数达到 一些神奇的数字。MS写道 该限值为3976 已打开插座,但似乎已打开 Win9x系统真正的限制是 更低

由于每个套接字在关闭后(该文章称为240秒)会保持“忙碌”相当长一段时间,因此在中等繁忙的服务器上很容易超过这个数字(无论在Windows 7中是什么),这并不奇怪,特别是因为桌面系统配置的套接字资源可能比真正的服务器系统少

那篇文章指出了解决这个问题的几种可能性,尽管它们已经过时了。但是,关键的一点是,这似乎与Python、Pylons、Paster或Pymssql无关——这完全是Windows系统配置和控制的问题。因此,您可能更幸运地在serverfault.com上询问,精通服务器的sysadms在哪里

错误代码被翻译成“没有可用的缓冲区空间”,实际上意味着(引用我刚才提到的MSDN页面):

无法对套接字执行操作 因为系统缺少 足够的缓冲区空间或因为 队伍排满了

实际上(如所解释的)通常指(引用我刚才提到的文章):

在大多数情况下,问题发生在 打开的套接字总数达到 一些神奇的数字。MS写道 该限值为3976 已打开插座,但似乎已打开 Win9x系统真正的限制是 更低

由于每个套接字在关闭后(该文章称为240秒)会保持“忙碌”相当长一段时间,因此在中等繁忙的服务器上很容易超过这个数字(无论在Windows 7中是什么),这并不奇怪,特别是因为桌面系统配置的套接字资源可能比真正的服务器系统少


那篇文章指出了解决这个问题的几种可能性,尽管它们已经过时了。但是,关键的一点是,这似乎与Python、Pylons、Paster或Pymssql无关——这完全是Windows系统配置和控制的问题。因此,您可能更幸运地在serverfault.com上询问,精通服务器的sysadms在哪里

好的。我终于让它完全工作了。如果pymssql是在python中的socket之后导入的,那么它似乎有一些问题,在web服务器上的sockets之前导入它有点可笑,所以我最终选择了pyodbc,它与pymssql语法惊人地相似。绝对是一个很好的折衷方案…

好的。我终于让它完全工作了。如果pymssql是在python中的socket之后导入的,那么它似乎有一些问题,在web服务器上的sockets之前导入它有点可笑,所以我最终选择了pyodbc,它与pymssql语法惊人地相似。这绝对是一个很好的折衷方案…

看起来有人发布了pymssql的安装程序,该安装程序在上修复了此问题。在运行此安装程序之前,请确保首先卸载pymssql,否则最终可能会从损坏的版本导入


如果您安装了egg,您应该能够通过从Python安装目录下的lib\site软件包(例如C:\Python26)中删除pymssql*目录来卸载它。

看起来有人发布了一个pymssql安装程序,在上修复了此问题。在运行此安装程序之前,请确保首先卸载pymssql,否则最终可能会从损坏的版本导入


如果您安装了egg,您应该能够通过从Python安装目录下的lib\site软件包(例如C:\Python26)中删除pymssql*目录来卸载它。

谢谢您的提示。但这似乎不是问题,目前只有大约40个连接打开。我去问问服务器故障。谢谢你的提示。但这似乎不是问题,目前只有大约40个连接打开。我去问问你的错误。