NameError:名称“AF_INET”未定义(仅在 MAC 上)

Win*_*455 4 python sockets

所以我在三个地方安装了 python:一台 Windows 机器、一台 Pi(运行 Kali)和我的 Mac。我的 Mac 是唯一一台在导入套接字库或依赖于套接字库的库(即 ipwhois)时出现此错误的设备。我在 sudo 中运行它,我尝试了 python 2 和 3 但仍然没有成功。这是我得到的:

Python 2.7.14 (default, Oct  1 2017, 15:09:23) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>>import socket
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "socket.py", line 15, in <module>
    serverSocket = socket(AF_INET, SOCK_STREAM)
NameError: name 'AF_INET' is not defined
>>> import ipwhois
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/user/homebrew/lib/python2.7/site-packages/ipwhois/__init__.py", line 26, in <module>
    from .net import Net
  File "/Users/user/homebrew/lib/python2.7/site-packages/ipwhois/net.py", line 26, in <module>
    import socket
  File "socket.py", line 15, in <module>
    serverSocket = socket(AF_INET, SOCK_STREAM)
NameError: name 'AF_INET' is not defined
Run Code Online (Sandbox Code Playgroud)

同样,这些库在我的 Windows 或 Linux 机器上都没有问题。我不太确定从这里该去哪里。任何帮助表示赞赏。

Fra*_* AK 5

AF_INET是在 内部定义的socket,所以尝试以下方法:

from socket import AF_INET, SOCK_STREAM
Run Code Online (Sandbox Code Playgroud)

如果您想知道其中包含什么,socket请尝试以下方式:

import socket

print dir(socket)
Run Code Online (Sandbox Code Playgroud)