【问题标题】:AttributeError: module 'socket' has no attribute 'AF_INET'AttributeError:模块 'socket' 没有属性 'AF_INET'
【发布时间】:2018-10-15 07:40:45
【问题描述】:

代码运行正常,现在显示错误

AttributeError: 模块 'socket' 没有属性 'AF_INET'

代码如下:模块名不是socket.py

import socket
client= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host='192.168.xx.x'
port=4196
client.connect((host, port))
print("connected to IP", host,"and port", port) 

错误:

`Traceback (most recent call last):
File "C:\Users\User\eclipse-workspace\New\soc.py", line 1, in <module>
   import socket
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 2, in <module>
    client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
AttributeError: module 'socket' has no attribute 'AF_INET'

`

【问题讨论】:

  • 您的代码在我的环境中运行良好。您能否添加有关文件/目录状态的更多信息?
  • 模块名为 TCP.py,它是文件夹内唯一的模块

标签: python sockets


【解决方案1】:

通过堆栈跟踪,现在可以清楚地看到您已经用自己的代码覆盖了标准库中的socket.py,因为错误发生在库路径C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\socket.py 中,而导致错误的代码显然是您的。

此时您应该重新安装 Python。或者,如果您确信这是唯一损坏的文件,您可以尝试将 socket.py 替换为源代码管理中的 here。

【讨论】:

  • 这个答案看起来正确,但您不应该创建新答案。
  • 是的,文件已损坏。您共享的那个不工作。更好我会重新安装。感谢您的帮助
  • 我换成了我服务器里的那个,终于成功了
  • 我刚刚遇到了同样的问题,不需要重新安装我只是删除了您将在 C:\Users\User\AppData\Local\Programs\Python\Python37-32\ 中找到的 socket.pyc 文件lib\ 之后重新启动 shell 一切正常
【解决方案2】:

您的项目目录中可能有一个名为socket.py 的模块,在这种情况下,当您使用import socket 时,它会优先于标准模块。将项目目录中的 socket.py 重命名为其他名称,您的代码就可以工作了。

【讨论】:

  • 不,我没有模块名称 sockets.py
  • 你能在import socket 之后做print(socket.__file__) 并告诉我它输出什么吗?
  • 它什么也不打印,只是显示同样的错误
  • 当您说显示相同的错误时,您的意思是相同的AttributeError: module 'socket' has no attribute 'AF_INET' 错误吗?如果是这样,您确定在import socket 之后立即执行print(socket.__file__) 吗?
  • 是的,导入socket print(socket.__file__) client= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
【解决方案3】:

代替

client= socket.socket(socket.AF_INET, socket.SOCK_STREAM)

做

client= socket(socket.AF_INET, socket.SOCK_STREAM)

【讨论】:

  • 您的代码在我的系统上运行良好。你说它以前工作得很好。您能否告诉我在此错误开始后您做了哪些更改?
  • 我没有做太多,我是在eclipse中写的。我用eclipse练习了一些其他的代码
  • 在这种情况下,你能打开你的 python 提示符看看代码是否在那里工作吗?
  • >>> import socket Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“C:\Users\User\AppData\Local\Programs\ Python\Python37-32\lib\socket.py",第 2 行,在 中 client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) AttributeError: module 'socket' has no attribute 'AF_INET' >>>
猜你喜欢
  • 2021-10-21
  • 2016-11-19
  • 1970-01-01
  • 2019-04-02
  • 2018-04-14
  • 2019-02-18
  • 1970-01-01
  • 2020-01-01
  • 2013-05-02
相关资源
最近更新 更多