NameError:未定义名称“AF\u INET”(仅在MAC上)

2024-05-14 17:46:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

同样,我的Windows或Linux机器上的这些库都没有问题。我真的不知道该怎么办。感谢任何帮助。在


Tags: inpyimport机器windowsmaclinesocket
2条回答

AF_INET是在socket中定义的,因此请尝试以下方法:

from socket import AF_INET, SOCK_STREAM

如果您想知道它包含在socket中的内容,请尝试以下方法:

^{pr2}$

根据您的注释,错误发生在一个特定的目录中。socket模块试图导入其他一些模块,特别是_socket。如果当前目录中有一个同名的文件,肯定会发生不好的事情。一般规则是,用户模块不应以_开头,也不应重复使用标准库中模块的名称。在

相关问题 更多 >

    热门问题