python - OSError: [WinError 10013] 试图以访问权限禁止的方式访问套接字
问题描述
我正在尝试使用 Huey 作为跨平台任务队列。我找到了https://github.com/pjcunningham/flask-huey-example,我已经克隆并设置了一个用于使用 conda 的 virtualenv(我正在使用 Windows)。我已经按照更新的自述文件进行了操作,并设法让所有三个窗口都正常运行。但是当我打开http://localhost:6060/
[![在此处输入图像描述][2]][2]
我单击发送按钮,这会破坏 Huey_consumer 进程:
$ python ...envs/hueytest1/Scripts/huey_consumer.exe run_huey.huey
[2018-08-06 10:19:25,949] INFO:huey.consumer:MainThread:Huey consumer started with 1 thread, PID 1704
[2018-08-06 10:19:25,949] INFO:huey.consumer:MainThread:Scheduler runs every 1 seconds.
[2018-08-06 10:19:25,949] INFO:huey.consumer:MainThread:Periodic tasks are enabled.
[2018-08-06 10:19:25,950] INFO:huey.consumer:MainThread:UTC is enabled.
[2018-08-06 10:19:25,950] INFO:huey.consumer:MainThread:The following commands are available:
+ send_async_email
+ dummy_task
[2018-08-06 10:19:39,743] INFO:huey.consumer.Worker:Worker-1:Executing queuecmd_send_async_email: ba5e092d-b1de-41cd-8b27-72d11c2b13d8
[2018-08-06 10:19:40,766] ERROR:huey.consumer.Worker:Worker-1:Unhandled exception in worker thread
Traceback (most recent call last):
File "...\envs\hueytest1\lib\site-packages\huey\consumer.py", line 153, in process_task
self.huey.execute(task)
File "...\envs\hueytest1\lib\site-packages\huey\api.py", line 271, in execute
result = task.execute()
File "...\envs\hueytest1\lib\site-packages\huey\api.py", line 565, in execute
return func(*args, **kwargs)
File "E:\ENVS\r3\hueytest1\app\tasks.py", line 23, in send_async_email
mail.send(msg)
File "...\envs\hueytest1\lib\site-packages\flask_mail.py", line 491, in send
with self.connect() as connection:
File "...\envs\hueytest1\lib\site-packages\flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "...\envs\hueytest1\lib\site-packages\flask_mail.py", line 158, in configure_host
host = smtplib.SMTP(self.mail.server, self.mail.port)
File "...\envs\hueytest1\lib\smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "...\envs\hueytest1\lib\smtplib.py", line 336, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "...\envs\hueytest1\lib\smtplib.py", line 307, in _get_socket
self.source_address)
File "...\envs\hueytest1\lib\socket.py", line 724, in create_connection
raise err
File "...\envs\hueytest1\lib\socket.py", line 713, in create_connection
sock.connect(sa)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
我怎样才能得到这个工作?
解决方案
尝试启动 Visdom 服务器时出现完全相同的错误:
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
原因是有另一个进程使用与 Visdom 想要使用的端口相同的端口,在我的例子中是端口 8097。
为了调试它,我按照以下步骤操作:
- 使用Sysinternals 的 TcpView来查找使用端口的进程。
- 如果进程结果是 svchost.exe,那么您需要找到使用此端口的服务。为此,请运行以下命令:`tasklist /svc /FI "PID eq 1234" where replce 1234 from PID you see in TcpView.
- 打开 Windows 服务小程序并查找此服务器。在我的情况下,这被证明是“交付优化”或 DOSvc 服务,如果您在大型网络上,它基本上使用 Windows 更新位的 P2P 下载。我暂时关闭了该服务并能够再次打开端口。
推荐阅读
- mysql - 数据建模和实现关系[1对多][多对多]等
- node.js - 我可以在不安装 Express 的情况下使用 body-parser 模块吗?
- c++ - 如何从 phinode 及其在 LLVM 中的相应基本块中获取标签?
- node.js - 号码的 Hapi/Joi 验证失败
- php - 未定义的偏移量 [PHP / JQUERY]
- typescript - 嵌套函数调用中的打字稿异步等待
- git - Git将不同的分支推送到不同的远程仓库?
- gcloud - Gcloud:从模板获取输出
- oracle - 无法在 oracle 12c Realease II 数据库中使用系统/管理器登录
- c++ - 如何在 MFC 中的 CArray 中使用 CArray?