为什么我使用twilio的脚本在本地运行得很好,但在Python的任何地方都会抛出错误?
我的脚本在本地运行时执行得非常完美,但在Python Anywhere上执行时,会抛出以下错误:为什么我使用twilio的脚本在本地运行得很好,但在Python的任何地方都会抛出错误?,python,python-3.x,twilio,pythonanywhere,Python,Python 3.x,Twilio,Pythonanywhere,我的脚本在本地运行时执行得非常完美,但在Python Anywhere上执行时,会抛出以下错误: Traceback (most recent call last): File "/home/ectobiologist7/desiderius.py", line 68, in <module> asendoff() File "/home/ectobiologist7/desiderius.py", line 64, in asendoff body=bill
Traceback (most recent call last):
File "/home/ectobiologist7/desiderius.py", line 68, in <module>
asendoff()
File "/home/ectobiologist7/desiderius.py", line 64, in asendoff
body=billiam,
File "/usr/local/lib/python3.4/dist-packages/twilio/rest/resources/messages.py", line 122, in create
return self.create_instance(kwargs)
File "/usr/local/lib/python3.4/dist-packages/twilio/rest/resources/base.py", line 365, in create_instance
data=transform_params(body))
File "/usr/local/lib/python3.4/dist-packages/twilio/rest/resources/base.py", line 200, in request
resp = make_twilio_request(method, uri, auth=self.auth, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/twilio/rest/resources/base.py", line 152, in make_twilio_request
resp = make_request(method, uri, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/twilio/rest/resources/base.py", line 117, in make_request
resp, content = http.request(url, method, headers=headers, body=data)
File "/usr/local/lib/python3.4/dist-packages/httplib2/__init__.py", line 1314, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/local/lib/python3.4/dist-packages/httplib2/__init__.py", line 1064, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/usr/local/lib/python3.4/dist-packages/httplib2/__init__.py", line 987, in _conn_request
conn.connect()
File "/usr/lib/python3.4/http/client.py", line 1223, in connect
super().connect()
File "/usr/lib/python3.4/http/client.py", line 834, in connect
self.timeout, self.source_address)
File "/usr/lib/python3.4/socket.py", line 512, in create_connection
raise err
File "/usr/lib/python3.4/socket.py", line 503, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
这里是Twilio开发者福音传道者 有人建议PA拥有旧版本的图书馆。几个月前,我们在我们的库和API中做了一个改进,以实施SSL 如果您使用的是最新版本的库,则不会有任何更改。从你发布的错误中,我不能确切地告诉你PA使用的是什么版本的库,但再深入一点,用户似乎可以 我在这里的建议是稍微改变您的方法,也许将其部署到(它是免费的,您将能够使用您想要的确切库版本)。这样,如果您看到它在那里工作,您可以联系PA并检查他们的库版本,您将能够告诉他们是否需要更新
希望这对您有所帮助 有人建议PA拥有旧版本的图书馆。几个月前,我们在我们的库和API中做了一个改进,以实施SSL 如果您使用的是最新版本的库,则不会有任何更改。从你发布的错误中,我不能确切地告诉你PA使用的是什么版本的库,但再深入一点,用户似乎可以 我在这里的建议是稍微改变您的方法,也许将其部署到(它是免费的,您将能够使用您想要的确切库版本)。这样,如果您看到它在那里工作,您可以联系PA并检查他们的库版本,您将能够告诉他们是否需要更新
希望这能帮助您所有来自Pythonywhere的外部连接,免费帐户被代理以防止滥用 您需要为连接设置代理,如下所示:
from twilio.rest.resources import Connection
from twilio.rest.resources.connection import PROXY_TYPE_HTTP
Connection.set_proxy_info(
"proxy.server",
3128,
proxy_type=PROXY_TYPE_HTTP
)
但是,在Python3中,httplib2(因此)忽略代理设置(请参见的底部),因此尝试与被阻止的Twilio建立直接连接。来自Pythony的所有外部连接,其中免费帐户被代理以防止滥用 您需要为连接设置代理,如下所示:
from twilio.rest.resources import Connection
from twilio.rest.resources.connection import PROXY_TYPE_HTTP
Connection.set_proxy_info(
"proxy.server",
3128,
proxy_type=PROXY_TYPE_HTTP
)
但是,在Python 3中,httplib2(因此)忽略代理设置(请参见的底部),因此尝试直接连接到被阻止的Twilio。我怀疑某个地方有防火墙阻止了Pythonywhere。@Twilio一端的Barmar?这将如何修复?无法从这里判断它是哪一端。我怀疑某个地方有防火墙阻止了PythonAnywhere。@Twilio一端的Barmar?这将如何修复?无法从这里判断它是哪一端。PythonyWhere dev在此--您也可以在我们的平台上运行任何版本的Twilio库,使用
pip2.7安装--user--upgrade
或virtualenv。问题是httplib2中的bug,这意味着它忽略了代理设置(免费Pythonywhere帐户所需)——请参阅Glenn对这个问题的回答。实际上,我应该说的是--请求
显然比httplib2
更适合构建API。在基于请求的库中,我们从来没有遇到过任何代理设置问题,特别是当它从标准环境变量中提取代理设置时,而不是要求用户在代码中配置代理设置。它还提供了聪明的连接池功能,因此理论上,如果您的服务器支持它,事情可以运行得更快。对不起,我忘了说PA上的控制台和我的本地脚本都使用了5.4.0,并且这个错误仍然发生。在主要帖子中,指向解决方案代理的链接与我在问题中提到的完全相同,但不起作用。很抱歉Pythonywhere dev here--您也可以在我们的平台上运行任何版本的Twilio库,使用pip2.7安装--user--upgrade
或virtualenv。问题是httplib2中的bug,这意味着它忽略了代理设置(免费Pythonywhere帐户所需)——请参阅Glenn对这个问题的回答。实际上,我应该说的是--请求
显然比httplib2
更适合构建API。在基于请求的库中,我们从来没有遇到过任何代理设置问题,特别是当它从标准环境变量中提取代理设置时,而不是要求用户在代码中配置代理设置。它还提供了聪明的连接池功能,因此理论上,如果您的服务器支持它,事情可以运行得更快。对不起,我忘了说PA上的控制台和我的本地脚本都使用了5.4.0,并且这个错误仍然发生。在主要帖子中,指向解决方案代理的链接与我在问题中提到的完全相同,但不起作用。很抱歉我已经尝试了代理,但这一个看起来不同,所以我会尝试!我应该把这个放在剧本的什么地方?在你连接到twilioGot之前!对于本书的未来读者,为了澄清这一点,您必须添加代理代码并使用Python 2.7。谢谢你的帮助!我无法导入这些模块我已经尝试了代理,但这一个看起来不同,所以我会尝试!我应该把这个放在剧本的什么地方?在你连接到twilioGot之前!对于本书的未来读者,为了澄清这一点,您必须添加代理代码并使用Python 2.7。谢谢你的帮助!我无法导入这些模块