flask - 如何解决 Heroku 上缺少的模块 Tweepy?
问题描述
我正在运行 python 脚本以自动从我在 Heroku 上运行的网站更新推文。tweepy 脚本每小时执行一次。该脚本在本地环境中工作,但不会在 Heroku 上执行。
错误日志如下:
2020-05-02T12:32:41.805232+00:00 app[scheduler.6938]: File "/app/app/main/twitter.py", line 1, in <module>
2020-05-02T12:32:41.805363+00:00 app[scheduler.6938]: import tweepy
2020-05-02T12:32:41.805363+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/tweepy/__init__.py", line 12, in <module>
2020-05-02T12:32:41.805500+00:00 app[scheduler.6938]: from tweepy.api import API
2020-05-02T12:32:41.805503+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/tweepy/api.py", line 10, in <module>
2020-05-02T12:32:41.805645+00:00 app[scheduler.6938]: from tweepy.binder import bind_api
2020-05-02T12:32:41.805647+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/tweepy/binder.py", line 10, in <module>
2020-05-02T12:32:41.805772+00:00 app[scheduler.6938]: import requests
2020-05-02T12:32:41.805832+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/requests/__init__.py", line 43, in <module>
2020-05-02T12:32:41.805968+00:00 app[scheduler.6938]: import urllib3
2020-05-02T12:32:41.805971+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/__init__.py", line 7, in <module>
2020-05-02T12:32:41.806110+00:00 app[scheduler.6938]: from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
2020-05-02T12:32:41.806114+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/connectionpool.py", line 11, in <module>
2020-05-02T12:32:41.806230+00:00 app[scheduler.6938]: from .exceptions import (
2020-05-02T12:32:41.806266+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/exceptions.py", line 2, in <module>
2020-05-02T12:32:41.806407+00:00 app[scheduler.6938]: from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead
2020-05-02T12:32:41.806411+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/packages/six.py", line 199, in load_module
2020-05-02T12:32:41.806614+00:00 app[scheduler.6938]: mod = mod._resolve()
2020-05-02T12:32:41.806618+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/packages/six.py", line 113, in _resolve
2020-05-02T12:32:41.806805+00:00 app[scheduler.6938]: return _import_module(self.mod)
2020-05-02T12:32:41.806809+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/urllib3/packages/six.py", line 82, in _import_module
2020-05-02T12:32:41.806954+00:00 app[scheduler.6938]: __import__(name)
2020-05-02T12:32:41.806957+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/http/client.py", line 71, in <module>
2020-05-02T12:32:41.807124+00:00 app[scheduler.6938]: import email.parser
2020-05-02T12:32:41.807128+00:00 app[scheduler.6938]: File "/app/app/main/email.py", line 1, in <module>
2020-05-02T12:32:41.807244+00:00 app[scheduler.6938]: from flask import current_app
2020-05-02T12:32:41.807245+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/__init__.py", line 19, in <module>
2020-05-02T12:32:41.807371+00:00 app[scheduler.6938]: from . import json
2020-05-02T12:32:41.807375+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/json/__init__.py", line 17, in <module>
2020-05-02T12:32:41.807504+00:00 app[scheduler.6938]: from werkzeug.http import http_date
2020-05-02T12:32:41.807508+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/werkzeug/__init__.py", line 218, in <module>
2020-05-02T12:32:41.807677+00:00 app[scheduler.6938]: from .serving import run_simple
2020-05-02T12:32:41.807681+00:00 app[scheduler.6938]: File "/app/.heroku/python/lib/python3.6/site-packages/werkzeug/serving.py", line 59, in <module>
2020-05-02T12:32:41.807876+00:00 app[scheduler.6938]: import SocketServer as socketserver
2020-05-02T12:32:41.807879+00:00 app[scheduler.6938]: ModuleNotFoundError: No module named 'SocketServer'
解决方案
导入错误是 SocketServer 不是 tweepy。像这样导入
import socketserver
是的,默认情况下它只是 socketserver 而不是 SocketServer。 参考
推荐阅读
- ruby - 将此方法重构为单行
- ios - 将字符串转换为 double 类型会产生 0.0 而不是假定值
- python - 如何避免 pip 列出预发布版本?
- windows - Windows 批处理脚本:尝试通过使用管道循环命令结果来提取 Java 版本
- android - Angular PWA 显示:独立无法在 Android 上运行
- python - 如何正确设置 Conv2D 参数?
- angular - 如何防止表单在取消的 Angular Material 对话框中提交?
- haskell - 为什么 traceM 并不总是在 Haskell 中给出输出?
- python - 如何将数据附加到特定列 Pandas?
- r - 编写一个 for 循环以在文件夹中的文件中执行相同的功能