为什么Google Calendar的Python快速入门为我提供了一个OSError(WinError 10013)(以一种被禁止的方式访问socket)?

2024-03-29 09:06:37 发布

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

我一步一步地跟着Google's Quickstart for Python。每一步我都一丝不苟,经常复制和粘贴。我肯定启用了Google日历API。我已经用Pip安装了Google客户端库。我已经设置了示例代码和凭证.json在它自己的文件夹中。那么,为什么我运行它时会出现这个错误:

"OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions"

为了解决这个问题,我已经learned what a socket is。(它实际上是IP地址和单个端口的组合)。我有learned how to use netstat,但我还不知道这是如何应用于我正在做的事情。我研究过根据this question中的答案使用ShellExecuteEx,但我不知道如何在Python中使用它。在

我尝试将this question的已接受答案中的脚本添加到一个管理员py归档并导入管理员py编写脚本到快速入门.py. 更新后管理员py编写python3语法脚本并运行快速入门.py,Windows 8.1询问我是否允许访问。我说是的,但它仍然给了我一个禁止访问套接字的OSError(winerror10013)。UAC不是问题所在。在

我怀疑这是一个端口冲突,有东西已经在使用Google脚本试图使用的端口。但我担心端口是由一个黑盒函数决定的,我无法更改它。错误本身并没有说明它使用的是哪个端口,所以我需要做更多的研究。在


Tags: to端口答案py脚本access管理员错误
0条回答
网友
1楼 · 发布于 2024-03-29 09:06:37

这是港口问题。在

  • 去34号线快速入门.py文件(或写有creds的地方= 运行\u local_server())。在
  • 去流动.py文件 google auth_oauthlib包具有此功能(在VS代码中,单击 运行_local_server()并按F12或右键单击并选择“Go to 定义”)。在

您将看到第369行(在撰写本文时)说self, host='localhost', port=8080,。在

当我看netstat时,它实际上说这个端口正在使用中,可能是我从未关闭过的Apache服务器。在

Netstat TCP Port 8080, LISTENING

  • 更改流动.pygoogle auth\u oauthlib包中的文件到8090,因此369看起来像self, host='localhost', port=8090,。在

我跑了快速入门.py再次编写脚本,然后弹出验证我的Google帐户的窗口。在

我选择了我的账户,它成功了。别乱动管理的东西。在

我很高兴我能像这样找到它,因为我认为端口是以某种黑盒方式选择的,就像它是从Google的服务器上决定的一样。在

相关问题 更多 >