【发布时间】:2018-07-19 13:33:54
【问题描述】:
我正在尝试使用 Dockefile 运行 python tweepy 脚本。
这是我的 Dockerfile:
FROM python:3.6
RUN pip install tweepy
RUN pip install pymongo
RUN pip install asyncio
ADD tweepy_twitter_stream_v0.6.py /
CMD [ "python", "./tweepy_twitter_stream_v0.6.py" ]
tweepy_twitter_stream_v0.6.py 是我试图在 docker 映像上运行的 python 脚本。 该文件搜索主题标签并将推文插入 mongoDB:
# Send a request to Twitter's server and save the data on tweepy iterator using hashtag_name.
for tweet in tweepy.Cursor(api.search,q=hashtag_name,count=100,wait_on_rate_limit=True ,wait_on_rate_limit_notify= True).items():
# Convert tweepy object into json format
tweet_as_json = tweet._json
# Insert tweet to mongoDB
tweets.insert_one(tweet_as_json)
当我在 Jupyter notebook 上运行它时,它工作得非常好 但是,当我尝试使用 dockerfile 运行它时,我收到以下错误消息:
for tweet in tweepy.Cursor(api.search,q=hashtag_name,count=100,wait_on_rate_limit=True ,wait_on_rate_limit_notify= True).items():
File "/usr/local/lib/python3.6/site-packages/tweepy/cursor.py", line 49, in __next__
return self.next()
File "/usr/local/lib/python3.6/site-packages/tweepy/cursor.py", line 197, in next
self.current_page = self.page_iterator.next()
File "/usr/local/lib/python3.6/site-packages/tweepy/cursor.py", line 108, in next
data = self.method(max_id=self.max_id, parser=RawParser(), *self.args, **self.kargs)
File "/usr/local/lib/python3.6/site-packages/tweepy/binder.py", line 250, in _call
return method.execute()
File "/usr/local/lib/python3.6/site-packages/tweepy/binder.py", line 234, in execute
raise TweepError(error_msg, resp, api_code=api_error_code)
tweepy.error.TweepError: Twitter error response: status code = 403
这就是我使用 docker 的方式:
- 构建 docker 文件
- 运行docker镜像 -
两者都很顺利,我得到了图像名称。然后我在 Docker 工具箱命令行中运行了这个命令:
docker run f384c515d331
f384c515d331 是图像名称。我仍然收到相同的错误消息。
请帮忙,这真的很令人沮丧;(
【问题讨论】:
标签: python docker dockerfile tweepy http-status-code-403