社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为什么google calendar的python快速启动会给我一个oserror(winerror 10013)(禁止访问套接字)

Aaron Bell • 5 年前 • 1744 次点击  

我跟随 Google's Quickstart for Python ,一步一步。我严格按照每一步做,经常复印和粘贴。我肯定启用了google日历api。我已经用pip安装了google客户端库。我已经在它自己的文件夹中设置了示例代码和credentials.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 ,尽管我还不知道这对我的工作有什么影响。我已经研究过使用 ShellExecuteEx 基于中的答案 this question ,但我不知道如何在python中使用它。

我试着把剧本从接受的答案添加到 this question (它实际上使用了shellexecuteex方法,但我没有注意到这一点)导入一个admin.py文件,并将这个admin.py脚本导入quickstart.py。在将admin.py脚本更新为python 3语法并运行quickstart.py之后,windows 8.1询问我是否允许访问。我说是的,但它仍然给我一个以禁止的方式访问套接字的错误(winerror 10013)。UAC不是问题所在。

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43256
 
1744 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Aaron Bell
Reply   •   1 楼
Aaron Bell    6 年前

这是港口问题。

  • 转到quickstart.py文件的第34行(或者在其中显示creds= 运行本地服务器)。
  • 转到中的flow.py文件 带有此功能的google_auth_oauthlib包(在vs代码中,单击 运行本地服务器()并按F12或右键单击并选择“转到” 定义)。

你会看到第369行(在写这篇文章的时候)说 self, host='localhost', port=8080, .

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

Netstat TCP Port 8080, LISTENING

  • 将google_auth_oauthlib包中flow.py文件中的值更改为8090,因此369看起来像 self, host='localhost', port=8090, .

我再次运行quickstart.py脚本,弹出了验证我的google帐户的窗口。

我选择了我的帐户,而且成功了。不要乱动管理的东西。

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