Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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
Python代码在Ubuntu 14.04中工作,但在Win8.1中不工作_Python_Windows 8.1_Ubuntu 14.04_Attributeerror - Fatal编程技术网

Python代码在Ubuntu 14.04中工作,但在Win8.1中不工作

Python代码在Ubuntu 14.04中工作,但在Win8.1中不工作,python,windows-8.1,ubuntu-14.04,attributeerror,Python,Windows 8.1,Ubuntu 14.04,Attributeerror,我收到一封信,希望在我的windows 8.1操作系统上运行脚本runCortexReader.py。Spyder告诉我这个错误: AttributeError:'module'对象没有属性'SO\u REUSEPORT' 同样的代码在使用Ubuntu 14.04的同一台计算机上使用Spyder(使用双启动,而不是虚拟机) 问题是,我真的很想在Windows上运行该脚本,因为它应该稍后与未安装在Ubuntu上的Matlab通信 我在两个系统上都使用Python2.7 有人知道错误可能在哪里吗?因

我收到一封信,希望在我的windows 8.1操作系统上运行脚本runCortexReader.py。Spyder告诉我这个错误:

AttributeError:'module'对象没有属性'SO\u REUSEPORT'

同样的代码在使用Ubuntu 14.04的同一台计算机上使用Spyder(使用双启动,而不是虚拟机)

问题是,我真的很想在Windows上运行该脚本,因为它应该稍后与未安装在Ubuntu上的Matlab通信

我在两个系统上都使用Python2.7

有人知道错误可能在哪里吗?

因此,REUSEPORT(以及REUSEADDR)是一个与套接字相关的设置。总之,它们之间的差异有一个很好的解释

因此_REUSEPORT仅出现在较新的Linux版本中-在/usr/include/asm generic/socket.h中定义为值15,通常(
#define SO _reuseport15
):

  • 是在Ubuntu14中定义的,但不是在Ubuntu12中(注释掉了这一行:
    /*要添加:#define SO_REUSEPORT 15*/
  • 在RHEL 7中定义,但在RHEL 5中未定义(相同注释)
另一方面,在Win上,VisualStudio的包含文件(通常是Winsock2.h)中没有定义这样的宏

另外,在可能的选项名称中没有提到它

为了让它在Win上运行(尽管这不是一个好方法),您必须做的是注释掉(通过在开头添加一个#字符)引用它的所有行(我在下面的文件中找到了它,但它可能存在于其他文件中):

  • CortexDecoder.py第244行:

    self.cortexSocket.setsockopt(socket.SOL\u socket,socket.SO\u重用端口,1)
    
或者(这甚至更脏)在同一个文件中,导入套接字模块后,添加以下行:

socket.SO\u REUSEPORT=socket.SO\u REUSEADDR

请添加完整的回溯功能—一个最小的运行示例如何?