首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImportError:部署到GAE时不会出现名为“requests.packages.urllib3”的模块

ImportError:部署到GAE时不会出现名为“requests.packages.urllib3”的模块
EN

Stack Overflow用户
提问于 2015-03-09 02:02:28
回答 2查看 8.2K关注 0票数 3

我有一些python代码,尝试使用第三方模块(tweepy):

代码语言:javascript
运行
复制
...
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
...

当我在pc上启动它时,它运行得很好,但是如果我尝试将它与google应用程序引擎一起使用,我会得到一个错误:

代码语言:javascript
运行
复制
File "X:\courant\main.py", line 6, in <module>

    import tweepy

  File "X:\courant\lib\tweepy\__init__.py", line 14, in <module>

    from tweepy.api import API

  File "X:\courant\lib\tweepy\api.py", line 12, in <module>

    from tweepy.binder import bind_api

  File "X:\courant\lib\tweepy\binder.py", line 11, in <module>

    import requests

  File "X:\courant\lib\requests\__init__.py", line 58, in <module>

    from . import utils

  File "X:\courant\lib\requests\utils.py", line 26, in <module>

    from .compat import parse_http_list as _parse_list_header

  File "X:\courant\lib\requests\compat.py", line 42, in <module>

    from .packages.urllib3.packages.ordered_dict import OrderedDict

  File "X:\courant\lib\requests\packages\__init__.py", line 83, in load_module

    raise ImportError("No module named '%s'" % (name,))

ImportError: No module named 'requests.packages.urllib3'

Tweepy安装在GAE项目的/lib目录中,并在代码中添加到/lib的链接:

代码语言:javascript
运行
复制
import site
import os.path

site.addsitedir(os.path.join(os.path.dirname(__file__), 'lib'))

urllib3存在于lib\requests\packages\urllib3中,但我仍然得到以下错误:

代码语言:javascript
运行
复制
ImportError: No module named 'requests.packages.urllib3'

我做错什么了?我不知道..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-24 19:28:56

我通过将urllib3添加到/lib (而不是使用请求附带的)并将compat.py中的行更改为:

代码语言:javascript
运行
复制
from .packages.urllib3.packages.ordered_dict import OrderedDict

至:

代码语言:javascript
运行
复制
from urllib3.packages.ordered_dict import OrderedDict

在此之后,您还需要安装其他库,如oauth和ssh (应该通过编辑app.yaml来添加,因为谷歌已经发布了)。

尝试使用dev_appserver.py进行测试将不起作用,但如果启用了计费(它使用套接字),它将在生产中工作。

票数 2
EN

Stack Overflow用户

发布于 2018-12-22 13:15:01

将请求更新到>= v2.20.0

对于支持解决此问题的requests v2.20.0来说,这不再是一个问题。

如果像我一样,您安装了Rasbian (或您正在使用的操作系统),而它没有安装最新版本的requests运行

pip install requests -U

解决这个问题

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28934216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档