我有一些python代码,尝试使用第三方模块(tweepy):
...
import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
...
当我在pc上启动它时,它运行得很好,但是如果我尝试将它与google应用程序引擎一起使用,我会得到一个错误:
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的链接:
import site
import os.path
site.addsitedir(os.path.join(os.path.dirname(__file__), 'lib'))
urllib3存在于lib\requests\packages\urllib3
中,但我仍然得到以下错误:
ImportError: No module named 'requests.packages.urllib3'
我做错什么了?我不知道..。
发布于 2015-03-24 19:28:56
我通过将urllib3添加到/lib (而不是使用请求附带的)并将compat.py中的行更改为:
from .packages.urllib3.packages.ordered_dict import OrderedDict
至:
from urllib3.packages.ordered_dict import OrderedDict
在此之后,您还需要安装其他库,如oauth和ssh (应该通过编辑app.yaml来添加,因为谷歌已经发布了)。
尝试使用dev_appserver.py进行测试将不起作用,但如果启用了计费(它使用套接字),它将在生产中工作。
发布于 2018-12-22 13:15:01
将请求更新到>= v2.20.0
对于支持解决此问题的requests v2.20.0
来说,这不再是一个问题。
如果像我一样,您安装了Rasbian (或您正在使用的操作系统),而它没有安装最新版本的requests
运行
pip install requests -U
解决这个问题
https://stackoverflow.com/questions/28934216
复制相似问题